Commit 800deef3 authored by Christoph Hellwig's avatar Christoph Hellwig Committed by Mark Fasheh

[PATCH] ocfs2: use list_for_each_entry where benefical

Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarMark Fasheh <mark.fasheh@oracle.com>
parent e6df3a66
...@@ -261,14 +261,12 @@ static void o2net_complete_nsw(struct o2net_node *nn, ...@@ -261,14 +261,12 @@ static void o2net_complete_nsw(struct o2net_node *nn,
static void o2net_complete_nodes_nsw(struct o2net_node *nn) static void o2net_complete_nodes_nsw(struct o2net_node *nn)
{ {
struct list_head *iter, *tmp; struct o2net_status_wait *nsw, *tmp;
unsigned int num_kills = 0; unsigned int num_kills = 0;
struct o2net_status_wait *nsw;
assert_spin_locked(&nn->nn_lock); assert_spin_locked(&nn->nn_lock);
list_for_each_safe(iter, tmp, &nn->nn_status_list) { list_for_each_entry_safe(nsw, tmp, &nn->nn_status_list, ns_node_item) {
nsw = list_entry(iter, struct o2net_status_wait, ns_node_item);
o2net_complete_nsw_locked(nn, nsw, O2NET_ERR_DIED, 0); o2net_complete_nsw_locked(nn, nsw, O2NET_ERR_DIED, 0);
num_kills++; num_kills++;
} }
...@@ -764,13 +762,10 @@ EXPORT_SYMBOL_GPL(o2net_register_handler); ...@@ -764,13 +762,10 @@ EXPORT_SYMBOL_GPL(o2net_register_handler);
void o2net_unregister_handler_list(struct list_head *list) void o2net_unregister_handler_list(struct list_head *list)
{ {
struct list_head *pos, *n; struct o2net_msg_handler *nmh, *n;
struct o2net_msg_handler *nmh;
write_lock(&o2net_handler_lock); write_lock(&o2net_handler_lock);
list_for_each_safe(pos, n, list) { list_for_each_entry_safe(nmh, n, list, nh_unregister_item) {
nmh = list_entry(pos, struct o2net_msg_handler,
nh_unregister_item);
mlog(ML_TCP, "unregistering handler func %p type %u key %08x\n", mlog(ML_TCP, "unregistering handler func %p type %u key %08x\n",
nmh->nh_func, nmh->nh_msg_type, nmh->nh_key); nmh->nh_func, nmh->nh_msg_type, nmh->nh_key);
rb_erase(&nmh->nh_node, &o2net_handler_tree); rb_erase(&nmh->nh_node, &o2net_handler_tree);
......
...@@ -192,25 +192,20 @@ static void dlm_print_one_mle(struct dlm_master_list_entry *mle) ...@@ -192,25 +192,20 @@ static void dlm_print_one_mle(struct dlm_master_list_entry *mle)
static void dlm_dump_mles(struct dlm_ctxt *dlm) static void dlm_dump_mles(struct dlm_ctxt *dlm)
{ {
struct dlm_master_list_entry *mle; struct dlm_master_list_entry *mle;
struct list_head *iter;
mlog(ML_NOTICE, "dumping all mles for domain %s:\n", dlm->name); mlog(ML_NOTICE, "dumping all mles for domain %s:\n", dlm->name);
spin_lock(&dlm->master_lock); spin_lock(&dlm->master_lock);
list_for_each(iter, &dlm->master_list) { list_for_each_entry(mle, &dlm->master_list, list)
mle = list_entry(iter, struct dlm_master_list_entry, list);
dlm_print_one_mle(mle); dlm_print_one_mle(mle);
}
spin_unlock(&dlm->master_lock); spin_unlock(&dlm->master_lock);
} }
int dlm_dump_all_mles(const char __user *data, unsigned int len) int dlm_dump_all_mles(const char __user *data, unsigned int len)
{ {
struct list_head *iter;
struct dlm_ctxt *dlm; struct dlm_ctxt *dlm;
spin_lock(&dlm_domain_lock); spin_lock(&dlm_domain_lock);
list_for_each(iter, &dlm_domains) { list_for_each_entry(dlm, &dlm_domains, list) {
dlm = list_entry (iter, struct dlm_ctxt, list);
mlog(ML_NOTICE, "found dlm: %p, name=%s\n", dlm, dlm->name); mlog(ML_NOTICE, "found dlm: %p, name=%s\n", dlm, dlm->name);
dlm_dump_mles(dlm); dlm_dump_mles(dlm);
} }
...@@ -454,12 +449,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm, ...@@ -454,12 +449,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm,
char *name, unsigned int namelen) char *name, unsigned int namelen)
{ {
struct dlm_master_list_entry *tmpmle; struct dlm_master_list_entry *tmpmle;
struct list_head *iter;
assert_spin_locked(&dlm->master_lock); assert_spin_locked(&dlm->master_lock);
list_for_each(iter, &dlm->master_list) { list_for_each_entry(tmpmle, &dlm->master_list, list) {
tmpmle = list_entry(iter, struct dlm_master_list_entry, list);
if (!dlm_mle_equal(dlm, tmpmle, name, namelen)) if (!dlm_mle_equal(dlm, tmpmle, name, namelen))
continue; continue;
dlm_get_mle(tmpmle); dlm_get_mle(tmpmle);
...@@ -472,13 +465,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm, ...@@ -472,13 +465,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm,
void dlm_hb_event_notify_attached(struct dlm_ctxt *dlm, int idx, int node_up) void dlm_hb_event_notify_attached(struct dlm_ctxt *dlm, int idx, int node_up)
{ {
struct dlm_master_list_entry *mle; struct dlm_master_list_entry *mle;
struct list_head *iter;
assert_spin_locked(&dlm->spinlock); assert_spin_locked(&dlm->spinlock);
list_for_each(iter, &dlm->mle_hb_events) { list_for_each_entry(mle, &dlm->mle_hb_events, hb_events) {
mle = list_entry(iter, struct dlm_master_list_entry,
hb_events);
if (node_up) if (node_up)
dlm_mle_node_up(dlm, mle, NULL, idx); dlm_mle_node_up(dlm, mle, NULL, idx);
else else
...@@ -2434,7 +2424,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm, ...@@ -2434,7 +2424,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm,
int ret; int ret;
int i; int i;
int count = 0; int count = 0;
struct list_head *queue, *iter; struct list_head *queue;
struct dlm_lock *lock; struct dlm_lock *lock;
assert_spin_locked(&res->spinlock); assert_spin_locked(&res->spinlock);
...@@ -2453,8 +2443,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm, ...@@ -2453,8 +2443,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm,
ret = 0; ret = 0;
queue = &res->granted; queue = &res->granted;
for (i = 0; i < 3; i++) { for (i = 0; i < 3; i++) {
list_for_each(iter, queue) { list_for_each_entry(lock, queue, list) {
lock = list_entry(iter, struct dlm_lock, list);
++count; ++count;
if (lock->ml.node == dlm->node_num) { if (lock->ml.node == dlm->node_num) {
mlog(0, "found a lock owned by this node still " mlog(0, "found a lock owned by this node still "
...@@ -2923,18 +2912,16 @@ static int dlm_mark_lockres_migrating(struct dlm_ctxt *dlm, ...@@ -2923,18 +2912,16 @@ static int dlm_mark_lockres_migrating(struct dlm_ctxt *dlm,
static void dlm_remove_nonlocal_locks(struct dlm_ctxt *dlm, static void dlm_remove_nonlocal_locks(struct dlm_ctxt *dlm,
struct dlm_lock_resource *res) struct dlm_lock_resource *res)
{ {
struct list_head *iter, *iter2;
struct list_head *queue = &res->granted; struct list_head *queue = &res->granted;
int i, bit; int i, bit;
struct dlm_lock *lock; struct dlm_lock *lock, *next;
assert_spin_locked(&res->spinlock); assert_spin_locked(&res->spinlock);
BUG_ON(res->owner == dlm->node_num); BUG_ON(res->owner == dlm->node_num);
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
list_for_each_safe(iter, iter2, queue) { list_for_each_entry_safe(lock, next, queue, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node != dlm->node_num) { if (lock->ml.node != dlm->node_num) {
mlog(0, "putting lock for node %u\n", mlog(0, "putting lock for node %u\n",
lock->ml.node); lock->ml.node);
...@@ -2976,7 +2963,6 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm, ...@@ -2976,7 +2963,6 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm,
{ {
int i; int i;
struct list_head *queue = &res->granted; struct list_head *queue = &res->granted;
struct list_head *iter;
struct dlm_lock *lock; struct dlm_lock *lock;
int nodenum; int nodenum;
...@@ -2984,10 +2970,9 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm, ...@@ -2984,10 +2970,9 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm,
spin_lock(&res->spinlock); spin_lock(&res->spinlock);
for (i=0; i<3; i++) { for (i=0; i<3; i++) {
list_for_each(iter, queue) { list_for_each_entry(lock, queue, list) {
/* up to the caller to make sure this node /* up to the caller to make sure this node
* is alive */ * is alive */
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node != dlm->node_num) { if (lock->ml.node != dlm->node_num) {
spin_unlock(&res->spinlock); spin_unlock(&res->spinlock);
return lock->ml.node; return lock->ml.node;
...@@ -3234,8 +3219,7 @@ static int dlm_add_migration_mle(struct dlm_ctxt *dlm, ...@@ -3234,8 +3219,7 @@ static int dlm_add_migration_mle(struct dlm_ctxt *dlm,
void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node) void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node)
{ {
struct list_head *iter, *iter2; struct dlm_master_list_entry *mle, *next;
struct dlm_master_list_entry *mle;
struct dlm_lock_resource *res; struct dlm_lock_resource *res;
unsigned int hash; unsigned int hash;
...@@ -3245,9 +3229,7 @@ void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node) ...@@ -3245,9 +3229,7 @@ void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node)
/* clean the master list */ /* clean the master list */
spin_lock(&dlm->master_lock); spin_lock(&dlm->master_lock);
list_for_each_safe(iter, iter2, &dlm->master_list) { list_for_each_entry_safe(mle, next, &dlm->master_list, list) {
mle = list_entry(iter, struct dlm_master_list_entry, list);
BUG_ON(mle->type != DLM_MLE_BLOCK && BUG_ON(mle->type != DLM_MLE_BLOCK &&
mle->type != DLM_MLE_MASTER && mle->type != DLM_MLE_MASTER &&
mle->type != DLM_MLE_MIGRATION); mle->type != DLM_MLE_MIGRATION);
......
...@@ -158,8 +158,7 @@ void dlm_dispatch_work(struct work_struct *work) ...@@ -158,8 +158,7 @@ void dlm_dispatch_work(struct work_struct *work)
struct dlm_ctxt *dlm = struct dlm_ctxt *dlm =
container_of(work, struct dlm_ctxt, dispatched_work); container_of(work, struct dlm_ctxt, dispatched_work);
LIST_HEAD(tmp_list); LIST_HEAD(tmp_list);
struct list_head *iter, *iter2; struct dlm_work_item *item, *next;
struct dlm_work_item *item;
dlm_workfunc_t *workfunc; dlm_workfunc_t *workfunc;
int tot=0; int tot=0;
...@@ -167,13 +166,12 @@ void dlm_dispatch_work(struct work_struct *work) ...@@ -167,13 +166,12 @@ void dlm_dispatch_work(struct work_struct *work)
list_splice_init(&dlm->work_list, &tmp_list); list_splice_init(&dlm->work_list, &tmp_list);
spin_unlock(&dlm->work_lock); spin_unlock(&dlm->work_lock);
list_for_each_safe(iter, iter2, &tmp_list) { list_for_each_entry(item, &tmp_list, list) {
tot++; tot++;
} }
mlog(0, "%s: work thread has %d work items\n", dlm->name, tot); mlog(0, "%s: work thread has %d work items\n", dlm->name, tot);
list_for_each_safe(iter, iter2, &tmp_list) { list_for_each_entry_safe(item, next, &tmp_list, list) {
item = list_entry(iter, struct dlm_work_item, list);
workfunc = item->func; workfunc = item->func;
list_del_init(&item->list); list_del_init(&item->list);
...@@ -549,7 +547,6 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node) ...@@ -549,7 +547,6 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node)
{ {
int status = 0; int status = 0;
struct dlm_reco_node_data *ndata; struct dlm_reco_node_data *ndata;
struct list_head *iter;
int all_nodes_done; int all_nodes_done;
int destroy = 0; int destroy = 0;
int pass = 0; int pass = 0;
...@@ -567,8 +564,7 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node) ...@@ -567,8 +564,7 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node)
/* safe to access the node data list without a lock, since this /* safe to access the node data list without a lock, since this
* process is the only one to change the list */ * process is the only one to change the list */
list_for_each(iter, &dlm->reco.node_data) { list_for_each_entry(ndata, &dlm->reco.node_data, list) {
ndata = list_entry (iter, struct dlm_reco_node_data, list);
BUG_ON(ndata->state != DLM_RECO_NODE_DATA_INIT); BUG_ON(ndata->state != DLM_RECO_NODE_DATA_INIT);
ndata->state = DLM_RECO_NODE_DATA_REQUESTING; ndata->state = DLM_RECO_NODE_DATA_REQUESTING;
...@@ -655,9 +651,7 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node) ...@@ -655,9 +651,7 @@ static int dlm_remaster_locks(struct dlm_ctxt *dlm, u8 dead_node)
* done, or if anyone died */ * done, or if anyone died */
all_nodes_done = 1; all_nodes_done = 1;
spin_lock(&dlm_reco_state_lock); spin_lock(&dlm_reco_state_lock);
list_for_each(iter, &dlm->reco.node_data) { list_for_each_entry(ndata, &dlm->reco.node_data, list) {
ndata = list_entry (iter, struct dlm_reco_node_data, list);
mlog(0, "checking recovery state of node %u\n", mlog(0, "checking recovery state of node %u\n",
ndata->node_num); ndata->node_num);
switch (ndata->state) { switch (ndata->state) {
...@@ -774,16 +768,14 @@ static int dlm_init_recovery_area(struct dlm_ctxt *dlm, u8 dead_node) ...@@ -774,16 +768,14 @@ static int dlm_init_recovery_area(struct dlm_ctxt *dlm, u8 dead_node)
static void dlm_destroy_recovery_area(struct dlm_ctxt *dlm, u8 dead_node) static void dlm_destroy_recovery_area(struct dlm_ctxt *dlm, u8 dead_node)
{ {
struct list_head *iter, *iter2; struct dlm_reco_node_data *ndata, *next;
struct dlm_reco_node_data *ndata;
LIST_HEAD(tmplist); LIST_HEAD(tmplist);
spin_lock(&dlm_reco_state_lock); spin_lock(&dlm_reco_state_lock);
list_splice_init(&dlm->reco.node_data, &tmplist); list_splice_init(&dlm->reco.node_data, &tmplist);
spin_unlock(&dlm_reco_state_lock); spin_unlock(&dlm_reco_state_lock);
list_for_each_safe(iter, iter2, &tmplist) { list_for_each_entry_safe(ndata, next, &tmplist, list) {
ndata = list_entry (iter, struct dlm_reco_node_data, list);
list_del_init(&ndata->list); list_del_init(&ndata->list);
kfree(ndata); kfree(ndata);
} }
...@@ -876,7 +868,6 @@ static void dlm_request_all_locks_worker(struct dlm_work_item *item, void *data) ...@@ -876,7 +868,6 @@ static void dlm_request_all_locks_worker(struct dlm_work_item *item, void *data)
struct dlm_lock_resource *res; struct dlm_lock_resource *res;
struct dlm_ctxt *dlm; struct dlm_ctxt *dlm;
LIST_HEAD(resources); LIST_HEAD(resources);
struct list_head *iter;
int ret; int ret;
u8 dead_node, reco_master; u8 dead_node, reco_master;
int skip_all_done = 0; int skip_all_done = 0;
...@@ -920,8 +911,7 @@ static void dlm_request_all_locks_worker(struct dlm_work_item *item, void *data) ...@@ -920,8 +911,7 @@ static void dlm_request_all_locks_worker(struct dlm_work_item *item, void *data)
/* any errors returned will be due to the new_master dying, /* any errors returned will be due to the new_master dying,
* the dlm_reco_thread should detect this */ * the dlm_reco_thread should detect this */
list_for_each(iter, &resources) { list_for_each_entry(res, &resources, recovering) {
res = list_entry (iter, struct dlm_lock_resource, recovering);
ret = dlm_send_one_lockres(dlm, res, mres, reco_master, ret = dlm_send_one_lockres(dlm, res, mres, reco_master,
DLM_MRES_RECOVERY); DLM_MRES_RECOVERY);
if (ret < 0) { if (ret < 0) {
...@@ -983,7 +973,6 @@ int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data, ...@@ -983,7 +973,6 @@ int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data,
{ {
struct dlm_ctxt *dlm = data; struct dlm_ctxt *dlm = data;
struct dlm_reco_data_done *done = (struct dlm_reco_data_done *)msg->buf; struct dlm_reco_data_done *done = (struct dlm_reco_data_done *)msg->buf;
struct list_head *iter;
struct dlm_reco_node_data *ndata = NULL; struct dlm_reco_node_data *ndata = NULL;
int ret = -EINVAL; int ret = -EINVAL;
...@@ -1000,8 +989,7 @@ int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data, ...@@ -1000,8 +989,7 @@ int dlm_reco_data_done_handler(struct o2net_msg *msg, u32 len, void *data,
dlm->reco.dead_node, done->node_idx, dlm->node_num); dlm->reco.dead_node, done->node_idx, dlm->node_num);
spin_lock(&dlm_reco_state_lock); spin_lock(&dlm_reco_state_lock);
list_for_each(iter, &dlm->reco.node_data) { list_for_each_entry(ndata, &dlm->reco.node_data, list) {
ndata = list_entry (iter, struct dlm_reco_node_data, list);
if (ndata->node_num != done->node_idx) if (ndata->node_num != done->node_idx)
continue; continue;
...@@ -1049,13 +1037,11 @@ static void dlm_move_reco_locks_to_list(struct dlm_ctxt *dlm, ...@@ -1049,13 +1037,11 @@ static void dlm_move_reco_locks_to_list(struct dlm_ctxt *dlm,
struct list_head *list, struct list_head *list,
u8 dead_node) u8 dead_node)
{ {
struct dlm_lock_resource *res; struct dlm_lock_resource *res, *next;
struct list_head *iter, *iter2;
struct dlm_lock *lock; struct dlm_lock *lock;
spin_lock(&dlm->spinlock); spin_lock(&dlm->spinlock);
list_for_each_safe(iter, iter2, &dlm->reco.resources) { list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
res = list_entry (iter, struct dlm_lock_resource, recovering);
/* always prune any $RECOVERY entries for dead nodes, /* always prune any $RECOVERY entries for dead nodes,
* otherwise hangs can occur during later recovery */ * otherwise hangs can occur during later recovery */
if (dlm_is_recovery_lock(res->lockname.name, if (dlm_is_recovery_lock(res->lockname.name,
...@@ -1252,7 +1238,7 @@ int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, ...@@ -1252,7 +1238,7 @@ int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
struct dlm_migratable_lockres *mres, struct dlm_migratable_lockres *mres,
u8 send_to, u8 flags) u8 send_to, u8 flags)
{ {
struct list_head *queue, *iter; struct list_head *queue;
int total_locks, i; int total_locks, i;
u64 mig_cookie = 0; u64 mig_cookie = 0;
struct dlm_lock *lock; struct dlm_lock *lock;
...@@ -1278,9 +1264,7 @@ int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res, ...@@ -1278,9 +1264,7 @@ int dlm_send_one_lockres(struct dlm_ctxt *dlm, struct dlm_lock_resource *res,
total_locks = 0; total_locks = 0;
for (i=DLM_GRANTED_LIST; i<=DLM_BLOCKED_LIST; i++) { for (i=DLM_GRANTED_LIST; i<=DLM_BLOCKED_LIST; i++) {
queue = dlm_list_idx_to_ptr(res, i); queue = dlm_list_idx_to_ptr(res, i);
list_for_each(iter, queue) { list_for_each_entry(lock, queue, list) {
lock = list_entry (iter, struct dlm_lock, list);
/* add another lock. */ /* add another lock. */
total_locks++; total_locks++;
if (!dlm_add_lock_to_array(lock, mres, i)) if (!dlm_add_lock_to_array(lock, mres, i))
...@@ -1717,7 +1701,6 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, ...@@ -1717,7 +1701,6 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
struct dlm_lockstatus *lksb = NULL; struct dlm_lockstatus *lksb = NULL;
int ret = 0; int ret = 0;
int i, j, bad; int i, j, bad;
struct list_head *iter;
struct dlm_lock *lock = NULL; struct dlm_lock *lock = NULL;
u8 from = O2NM_MAX_NODES; u8 from = O2NM_MAX_NODES;
unsigned int added = 0; unsigned int added = 0;
...@@ -1755,8 +1738,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm, ...@@ -1755,8 +1738,7 @@ static int dlm_process_recovery_data(struct dlm_ctxt *dlm,
spin_lock(&res->spinlock); spin_lock(&res->spinlock);
for (j = DLM_GRANTED_LIST; j <= DLM_BLOCKED_LIST; j++) { for (j = DLM_GRANTED_LIST; j <= DLM_BLOCKED_LIST; j++) {
tmpq = dlm_list_idx_to_ptr(res, j); tmpq = dlm_list_idx_to_ptr(res, j);
list_for_each(iter, tmpq) { list_for_each_entry(lock, tmpq, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.cookie != ml->cookie) if (lock->ml.cookie != ml->cookie)
lock = NULL; lock = NULL;
else else
...@@ -1930,8 +1912,8 @@ void dlm_move_lockres_to_recovery_list(struct dlm_ctxt *dlm, ...@@ -1930,8 +1912,8 @@ void dlm_move_lockres_to_recovery_list(struct dlm_ctxt *dlm,
struct dlm_lock_resource *res) struct dlm_lock_resource *res)
{ {
int i; int i;
struct list_head *queue, *iter, *iter2; struct list_head *queue;
struct dlm_lock *lock; struct dlm_lock *lock, *next;
res->state |= DLM_LOCK_RES_RECOVERING; res->state |= DLM_LOCK_RES_RECOVERING;
if (!list_empty(&res->recovering)) { if (!list_empty(&res->recovering)) {
...@@ -1947,8 +1929,7 @@ void dlm_move_lockres_to_recovery_list(struct dlm_ctxt *dlm, ...@@ -1947,8 +1929,7 @@ void dlm_move_lockres_to_recovery_list(struct dlm_ctxt *dlm,
/* find any pending locks and put them back on proper list */ /* find any pending locks and put them back on proper list */
for (i=DLM_BLOCKED_LIST; i>=DLM_GRANTED_LIST; i--) { for (i=DLM_BLOCKED_LIST; i>=DLM_GRANTED_LIST; i--) {
queue = dlm_list_idx_to_ptr(res, i); queue = dlm_list_idx_to_ptr(res, i);
list_for_each_safe(iter, iter2, queue) { list_for_each_entry_safe(lock, next, queue, list) {
lock = list_entry (iter, struct dlm_lock, list);
dlm_lock_get(lock); dlm_lock_get(lock);
if (lock->convert_pending) { if (lock->convert_pending) {
/* move converting lock back to granted */ /* move converting lock back to granted */
...@@ -2013,18 +1994,15 @@ static void dlm_finish_local_lockres_recovery(struct dlm_ctxt *dlm, ...@@ -2013,18 +1994,15 @@ static void dlm_finish_local_lockres_recovery(struct dlm_ctxt *dlm,
u8 dead_node, u8 new_master) u8 dead_node, u8 new_master)
{ {
int i; int i;
struct list_head *iter, *iter2;
struct hlist_node *hash_iter; struct hlist_node *hash_iter;
struct hlist_head *bucket; struct hlist_head *bucket;
struct dlm_lock_resource *res, *next;
struct dlm_lock_resource *res;
mlog_entry_void(); mlog_entry_void();
assert_spin_locked(&dlm->spinlock); assert_spin_locked(&dlm->spinlock);
list_for_each_safe(iter, iter2, &dlm->reco.resources) { list_for_each_entry_safe(res, next, &dlm->reco.resources, recovering) {
res = list_entry (iter, struct dlm_lock_resource, recovering);
if (res->owner == dead_node) { if (res->owner == dead_node) {
list_del_init(&res->recovering); list_del_init(&res->recovering);
spin_lock(&res->spinlock); spin_lock(&res->spinlock);
...@@ -2099,7 +2077,7 @@ static inline int dlm_lvb_needs_invalidation(struct dlm_lock *lock, int local) ...@@ -2099,7 +2077,7 @@ static inline int dlm_lvb_needs_invalidation(struct dlm_lock *lock, int local)
static void dlm_revalidate_lvb(struct dlm_ctxt *dlm, static void dlm_revalidate_lvb(struct dlm_ctxt *dlm,
struct dlm_lock_resource *res, u8 dead_node) struct dlm_lock_resource *res, u8 dead_node)
{ {
struct list_head *iter, *queue; struct list_head *queue;
struct dlm_lock *lock; struct dlm_lock *lock;
int blank_lvb = 0, local = 0; int blank_lvb = 0, local = 0;
int i; int i;
...@@ -2121,8 +2099,7 @@ static void dlm_revalidate_lvb(struct dlm_ctxt *dlm, ...@@ -2121,8 +2099,7 @@ static void dlm_revalidate_lvb(struct dlm_ctxt *dlm,
for (i=DLM_GRANTED_LIST; i<=DLM_CONVERTING_LIST; i++) { for (i=DLM_GRANTED_LIST; i<=DLM_CONVERTING_LIST; i++) {
queue = dlm_list_idx_to_ptr(res, i); queue = dlm_list_idx_to_ptr(res, i);
list_for_each(iter, queue) { list_for_each_entry(lock, queue, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node == search_node) { if (lock->ml.node == search_node) {
if (dlm_lvb_needs_invalidation(lock, local)) { if (dlm_lvb_needs_invalidation(lock, local)) {
/* zero the lksb lvb and lockres lvb */ /* zero the lksb lvb and lockres lvb */
...@@ -2143,8 +2120,7 @@ static void dlm_revalidate_lvb(struct dlm_ctxt *dlm, ...@@ -2143,8 +2120,7 @@ static void dlm_revalidate_lvb(struct dlm_ctxt *dlm,
static void dlm_free_dead_locks(struct dlm_ctxt *dlm, static void dlm_free_dead_locks(struct dlm_ctxt *dlm,
struct dlm_lock_resource *res, u8 dead_node) struct dlm_lock_resource *res, u8 dead_node)
{ {
struct list_head *iter, *tmpiter; struct dlm_lock *lock, *next;
struct dlm_lock *lock;
unsigned int freed = 0; unsigned int freed = 0;
/* this node is the lockres master: /* this node is the lockres master:
...@@ -2155,24 +2131,21 @@ static void dlm_free_dead_locks(struct dlm_ctxt *dlm, ...@@ -2155,24 +2131,21 @@ static void dlm_free_dead_locks(struct dlm_ctxt *dlm,
assert_spin_locked(&res->spinlock); assert_spin_locked(&res->spinlock);
/* TODO: check pending_asts, pending_basts here */ /* TODO: check pending_asts, pending_basts here */
list_for_each_safe(iter, tmpiter, &res->granted) { list_for_each_entry_safe(lock, next, &res->granted, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node == dead_node) { if (lock->ml.node == dead_node) {
list_del_init(&lock->list); list_del_init(&lock->list);
dlm_lock_put(lock); dlm_lock_put(lock);
freed++; freed++;
} }
} }
list_for_each_safe(iter, tmpiter, &res->converting) { list_for_each_entry_safe(lock, next, &res->converting, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node == dead_node) { if (lock->ml.node == dead_node) {
list_del_init(&lock->list); list_del_init(&lock->list);
dlm_lock_put(lock); dlm_lock_put(lock);
freed++; freed++;
} }
} }
list_for_each_safe(iter, tmpiter, &res->blocked) { list_for_each_entry_safe(lock, next, &res->blocked, list) {
lock = list_entry (iter, struct dlm_lock, list);
if (lock->ml.node == dead_node) { if (lock->ml.node == dead_node) {
list_del_init(&lock->list); list_del_init(&lock->list);
dlm_lock_put(lock); dlm_lock_put(lock);
......
...@@ -600,15 +600,13 @@ static inline int ocfs2_highest_compat_lock_level(int level) ...@@ -600,15 +600,13 @@ static inline int ocfs2_highest_compat_lock_level(int level)
static void lockres_set_flags(struct ocfs2_lock_res *lockres, static void lockres_set_flags(struct ocfs2_lock_res *lockres,
unsigned long newflags) unsigned long newflags)
{ {
struct list_head *pos, *tmp; struct ocfs2_mask_waiter *mw, *tmp;
struct ocfs2_mask_waiter *mw;
assert_spin_locked(&lockres->l_lock); assert_spin_locked(&lockres->l_lock);
lockres->l_flags = newflags; lockres->l_flags = newflags;
list_for_each_safe(pos, tmp, &lockres->l_mask_waiters) { list_for_each_entry_safe(mw, tmp, &lockres->l_mask_waiters, mw_item) {
mw = list_entry(pos, struct ocfs2_mask_waiter, mw_item);
if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal) if ((lockres->l_flags & mw->mw_mask) != mw->mw_goal)
continue; continue;
......
...@@ -109,17 +109,14 @@ static int ocfs2_extent_map_lookup(struct inode *inode, unsigned int cpos, ...@@ -109,17 +109,14 @@ static int ocfs2_extent_map_lookup(struct inode *inode, unsigned int cpos,
*/ */
void ocfs2_extent_map_trunc(struct inode *inode, unsigned int cpos) void ocfs2_extent_map_trunc(struct inode *inode, unsigned int cpos)
{ {
struct list_head *p, *n; struct ocfs2_extent_map_item *emi, *n;
struct ocfs2_extent_map_item *emi;
struct ocfs2_inode_info *oi = OCFS2_I(inode); struct ocfs2_inode_info *oi = OCFS2_I(inode);
struct ocfs2_extent_map *em = &oi->ip_extent_map; struct ocfs2_extent_map *em = &oi->ip_extent_map;
LIST_HEAD(tmp_list); LIST_HEAD(tmp_list);
unsigned int range; unsigned int range;
spin_lock(&oi->ip_lock); spin_lock(&oi->ip_lock);
list_for_each_safe(p, n, &em->em_list) { list_for_each_entry_safe(emi, n, &em->em_list, ei_list) {
emi = list_entry(p, struct ocfs2_extent_map_item, ei_list);
if (emi->ei_cpos >= cpos) { if (emi->ei_cpos >= cpos) {
/* Full truncate of this record. */ /* Full truncate of this record. */
list_move(&emi->ei_list, &tmp_list); list_move(&emi->ei_list, &tmp_list);
...@@ -136,8 +133,7 @@ void ocfs2_extent_map_trunc(struct inode *inode, unsigned int cpos) ...@@ -136,8 +133,7 @@ void ocfs2_extent_map_trunc(struct inode *inode, unsigned int cpos)
} }
spin_unlock(&oi->ip_lock); spin_unlock(&oi->ip_lock);
list_for_each_safe(p, n, &tmp_list) { list_for_each_entry_safe(emi, n, &tmp_list, ei_list) {
emi = list_entry(p, struct ocfs2_extent_map_item, ei_list);
list_del(&emi->ei_list); list_del(&emi->ei_list);
kfree(emi); kfree(emi);
} }
......
...@@ -722,8 +722,7 @@ void ocfs2_complete_recovery(struct work_struct *work) ...@@ -722,8 +722,7 @@ void ocfs2_complete_recovery(struct work_struct *work)
container_of(work, struct ocfs2_journal, j_recovery_work); container_of(work, struct ocfs2_journal, j_recovery_work);
struct ocfs2_super *osb = journal->j_osb; struct ocfs2_super *osb = journal->j_osb;
struct ocfs2_dinode *la_dinode, *tl_dinode; struct ocfs2_dinode *la_dinode, *tl_dinode;
struct ocfs2_la_recovery_item *item; struct ocfs2_la_recovery_item *item, *n;
struct list_head *p, *n;
LIST_HEAD(tmp_la_list); LIST_HEAD(tmp_la_list);
mlog_entry_void(); mlog_entry_void();
...@@ -734,8 +733,7 @@ void ocfs2_complete_recovery(struct work_struct *work) ...@@ -734,8 +733,7 @@ void ocfs2_complete_recovery(struct work_struct *work)
list_splice_init(&journal->j_la_cleanups, &tmp_la_list); list_splice_init(&journal->j_la_cleanups, &tmp_la_list);
spin_unlock(&journal->j_lock); spin_unlock(&journal->j_lock);
list_for_each_safe(p, n, &tmp_la_list) { list_for_each_entry_safe(item, n, &tmp_la_list, lri_list) {
item = list_entry(p, struct ocfs2_la_recovery_item, lri_list);
list_del_init(&item->lri_list); list_del_init(&item->lri_list);
mlog(0, "Complete recovery for slot %d\n", item->lri_slot); mlog(0, "Complete recovery for slot %d\n", item->lri_slot);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment