diff options
Diffstat (limited to 'fs/ocfs2/dlm/dlmmaster.c')
-rw-r--r-- | fs/ocfs2/dlm/dlmmaster.c | 40 |
1 files changed, 11 insertions, 29 deletions
diff --git a/fs/ocfs2/dlm/dlmmaster.c b/fs/ocfs2/dlm/dlmmaster.c index 6edffca99d98..65b2b9b92688 100644 --- a/fs/ocfs2/dlm/dlmmaster.c +++ b/fs/ocfs2/dlm/dlmmaster.c | |||
@@ -192,25 +192,20 @@ static void dlm_print_one_mle(struct dlm_master_list_entry *mle) | |||
192 | static void dlm_dump_mles(struct dlm_ctxt *dlm) | 192 | static void dlm_dump_mles(struct dlm_ctxt *dlm) |
193 | { | 193 | { |
194 | struct dlm_master_list_entry *mle; | 194 | struct dlm_master_list_entry *mle; |
195 | struct list_head *iter; | ||
196 | 195 | ||
197 | mlog(ML_NOTICE, "dumping all mles for domain %s:\n", dlm->name); | 196 | mlog(ML_NOTICE, "dumping all mles for domain %s:\n", dlm->name); |
198 | spin_lock(&dlm->master_lock); | 197 | spin_lock(&dlm->master_lock); |
199 | list_for_each(iter, &dlm->master_list) { | 198 | list_for_each_entry(mle, &dlm->master_list, list) |
200 | mle = list_entry(iter, struct dlm_master_list_entry, list); | ||
201 | dlm_print_one_mle(mle); | 199 | dlm_print_one_mle(mle); |
202 | } | ||
203 | spin_unlock(&dlm->master_lock); | 200 | spin_unlock(&dlm->master_lock); |
204 | } | 201 | } |
205 | 202 | ||
206 | int dlm_dump_all_mles(const char __user *data, unsigned int len) | 203 | int dlm_dump_all_mles(const char __user *data, unsigned int len) |
207 | { | 204 | { |
208 | struct list_head *iter; | ||
209 | struct dlm_ctxt *dlm; | 205 | struct dlm_ctxt *dlm; |
210 | 206 | ||
211 | spin_lock(&dlm_domain_lock); | 207 | spin_lock(&dlm_domain_lock); |
212 | list_for_each(iter, &dlm_domains) { | 208 | list_for_each_entry(dlm, &dlm_domains, list) { |
213 | dlm = list_entry (iter, struct dlm_ctxt, list); | ||
214 | mlog(ML_NOTICE, "found dlm: %p, name=%s\n", dlm, dlm->name); | 209 | mlog(ML_NOTICE, "found dlm: %p, name=%s\n", dlm, dlm->name); |
215 | dlm_dump_mles(dlm); | 210 | dlm_dump_mles(dlm); |
216 | } | 211 | } |
@@ -454,12 +449,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm, | |||
454 | char *name, unsigned int namelen) | 449 | char *name, unsigned int namelen) |
455 | { | 450 | { |
456 | struct dlm_master_list_entry *tmpmle; | 451 | struct dlm_master_list_entry *tmpmle; |
457 | struct list_head *iter; | ||
458 | 452 | ||
459 | assert_spin_locked(&dlm->master_lock); | 453 | assert_spin_locked(&dlm->master_lock); |
460 | 454 | ||
461 | list_for_each(iter, &dlm->master_list) { | 455 | list_for_each_entry(tmpmle, &dlm->master_list, list) { |
462 | tmpmle = list_entry(iter, struct dlm_master_list_entry, list); | ||
463 | if (!dlm_mle_equal(dlm, tmpmle, name, namelen)) | 456 | if (!dlm_mle_equal(dlm, tmpmle, name, namelen)) |
464 | continue; | 457 | continue; |
465 | dlm_get_mle(tmpmle); | 458 | dlm_get_mle(tmpmle); |
@@ -472,13 +465,10 @@ static int dlm_find_mle(struct dlm_ctxt *dlm, | |||
472 | void dlm_hb_event_notify_attached(struct dlm_ctxt *dlm, int idx, int node_up) | 465 | void dlm_hb_event_notify_attached(struct dlm_ctxt *dlm, int idx, int node_up) |
473 | { | 466 | { |
474 | struct dlm_master_list_entry *mle; | 467 | struct dlm_master_list_entry *mle; |
475 | struct list_head *iter; | ||
476 | 468 | ||
477 | assert_spin_locked(&dlm->spinlock); | 469 | assert_spin_locked(&dlm->spinlock); |
478 | 470 | ||
479 | list_for_each(iter, &dlm->mle_hb_events) { | 471 | list_for_each_entry(mle, &dlm->mle_hb_events, hb_events) { |
480 | mle = list_entry(iter, struct dlm_master_list_entry, | ||
481 | hb_events); | ||
482 | if (node_up) | 472 | if (node_up) |
483 | dlm_mle_node_up(dlm, mle, NULL, idx); | 473 | dlm_mle_node_up(dlm, mle, NULL, idx); |
484 | else | 474 | else |
@@ -2434,7 +2424,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm, | |||
2434 | int ret; | 2424 | int ret; |
2435 | int i; | 2425 | int i; |
2436 | int count = 0; | 2426 | int count = 0; |
2437 | struct list_head *queue, *iter; | 2427 | struct list_head *queue; |
2438 | struct dlm_lock *lock; | 2428 | struct dlm_lock *lock; |
2439 | 2429 | ||
2440 | assert_spin_locked(&res->spinlock); | 2430 | assert_spin_locked(&res->spinlock); |
@@ -2453,8 +2443,7 @@ static int dlm_is_lockres_migrateable(struct dlm_ctxt *dlm, | |||
2453 | ret = 0; | 2443 | ret = 0; |
2454 | queue = &res->granted; | 2444 | queue = &res->granted; |
2455 | for (i = 0; i < 3; i++) { | 2445 | for (i = 0; i < 3; i++) { |
2456 | list_for_each(iter, queue) { | 2446 | list_for_each_entry(lock, queue, list) { |
2457 | lock = list_entry(iter, struct dlm_lock, list); | ||
2458 | ++count; | 2447 | ++count; |
2459 | if (lock->ml.node == dlm->node_num) { | 2448 | if (lock->ml.node == dlm->node_num) { |
2460 | mlog(0, "found a lock owned by this node still " | 2449 | mlog(0, "found a lock owned by this node still " |
@@ -2923,18 +2912,16 @@ again: | |||
2923 | static void dlm_remove_nonlocal_locks(struct dlm_ctxt *dlm, | 2912 | static void dlm_remove_nonlocal_locks(struct dlm_ctxt *dlm, |
2924 | struct dlm_lock_resource *res) | 2913 | struct dlm_lock_resource *res) |
2925 | { | 2914 | { |
2926 | struct list_head *iter, *iter2; | ||
2927 | struct list_head *queue = &res->granted; | 2915 | struct list_head *queue = &res->granted; |
2928 | int i, bit; | 2916 | int i, bit; |
2929 | struct dlm_lock *lock; | 2917 | struct dlm_lock *lock, *next; |
2930 | 2918 | ||
2931 | assert_spin_locked(&res->spinlock); | 2919 | assert_spin_locked(&res->spinlock); |
2932 | 2920 | ||
2933 | BUG_ON(res->owner == dlm->node_num); | 2921 | BUG_ON(res->owner == dlm->node_num); |
2934 | 2922 | ||
2935 | for (i=0; i<3; i++) { | 2923 | for (i=0; i<3; i++) { |
2936 | list_for_each_safe(iter, iter2, queue) { | 2924 | list_for_each_entry_safe(lock, next, queue, list) { |
2937 | lock = list_entry (iter, struct dlm_lock, list); | ||
2938 | if (lock->ml.node != dlm->node_num) { | 2925 | if (lock->ml.node != dlm->node_num) { |
2939 | mlog(0, "putting lock for node %u\n", | 2926 | mlog(0, "putting lock for node %u\n", |
2940 | lock->ml.node); | 2927 | lock->ml.node); |
@@ -2976,7 +2963,6 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm, | |||
2976 | { | 2963 | { |
2977 | int i; | 2964 | int i; |
2978 | struct list_head *queue = &res->granted; | 2965 | struct list_head *queue = &res->granted; |
2979 | struct list_head *iter; | ||
2980 | struct dlm_lock *lock; | 2966 | struct dlm_lock *lock; |
2981 | int nodenum; | 2967 | int nodenum; |
2982 | 2968 | ||
@@ -2984,10 +2970,9 @@ static u8 dlm_pick_migration_target(struct dlm_ctxt *dlm, | |||
2984 | 2970 | ||
2985 | spin_lock(&res->spinlock); | 2971 | spin_lock(&res->spinlock); |
2986 | for (i=0; i<3; i++) { | 2972 | for (i=0; i<3; i++) { |
2987 | list_for_each(iter, queue) { | 2973 | list_for_each_entry(lock, queue, list) { |
2988 | /* up to the caller to make sure this node | 2974 | /* up to the caller to make sure this node |
2989 | * is alive */ | 2975 | * is alive */ |
2990 | lock = list_entry (iter, struct dlm_lock, list); | ||
2991 | if (lock->ml.node != dlm->node_num) { | 2976 | if (lock->ml.node != dlm->node_num) { |
2992 | spin_unlock(&res->spinlock); | 2977 | spin_unlock(&res->spinlock); |
2993 | return lock->ml.node; | 2978 | return lock->ml.node; |
@@ -3234,8 +3219,7 @@ static int dlm_add_migration_mle(struct dlm_ctxt *dlm, | |||
3234 | 3219 | ||
3235 | void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node) | 3220 | void dlm_clean_master_list(struct dlm_ctxt *dlm, u8 dead_node) |
3236 | { | 3221 | { |
3237 | struct list_head *iter, *iter2; | 3222 | struct dlm_master_list_entry *mle, *next; |
3238 | struct dlm_master_list_entry *mle; | ||
3239 | struct dlm_lock_resource *res; | 3223 | struct dlm_lock_resource *res; |
3240 | unsigned int hash; | 3224 | unsigned int hash; |
3241 | 3225 | ||
@@ -3245,9 +3229,7 @@ top: | |||
3245 | 3229 | ||
3246 | /* clean the master list */ | 3230 | /* clean the master list */ |
3247 | spin_lock(&dlm->master_lock); | 3231 | spin_lock(&dlm->master_lock); |
3248 | list_for_each_safe(iter, iter2, &dlm->master_list) { | 3232 | list_for_each_entry_safe(mle, next, &dlm->master_list, list) { |
3249 | mle = list_entry(iter, struct dlm_master_list_entry, list); | ||
3250 | |||
3251 | BUG_ON(mle->type != DLM_MLE_BLOCK && | 3233 | BUG_ON(mle->type != DLM_MLE_BLOCK && |
3252 | mle->type != DLM_MLE_MASTER && | 3234 | mle->type != DLM_MLE_MASTER && |
3253 | mle->type != DLM_MLE_MIGRATION); | 3235 | mle->type != DLM_MLE_MIGRATION); |