diff options
Diffstat (limited to 'fs/dlm/debug_fs.c')
-rw-r--r-- | fs/dlm/debug_fs.c | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/fs/dlm/debug_fs.c b/fs/dlm/debug_fs.c index 59779237e2b4..3dca2b39e83f 100644 --- a/fs/dlm/debug_fs.c +++ b/fs/dlm/debug_fs.c | |||
@@ -393,6 +393,7 @@ static const struct seq_operations format3_seq_ops; | |||
393 | 393 | ||
394 | static void *table_seq_start(struct seq_file *seq, loff_t *pos) | 394 | static void *table_seq_start(struct seq_file *seq, loff_t *pos) |
395 | { | 395 | { |
396 | struct rb_node *node; | ||
396 | struct dlm_ls *ls = seq->private; | 397 | struct dlm_ls *ls = seq->private; |
397 | struct rsbtbl_iter *ri; | 398 | struct rsbtbl_iter *ri; |
398 | struct dlm_rsb *r; | 399 | struct dlm_rsb *r; |
@@ -418,9 +419,10 @@ static void *table_seq_start(struct seq_file *seq, loff_t *pos) | |||
418 | ri->format = 3; | 419 | ri->format = 3; |
419 | 420 | ||
420 | spin_lock(&ls->ls_rsbtbl[bucket].lock); | 421 | spin_lock(&ls->ls_rsbtbl[bucket].lock); |
421 | if (!list_empty(&ls->ls_rsbtbl[bucket].list)) { | 422 | if (!RB_EMPTY_ROOT(&ls->ls_rsbtbl[bucket].keep)) { |
422 | list_for_each_entry(r, &ls->ls_rsbtbl[bucket].list, | 423 | for (node = rb_first(&ls->ls_rsbtbl[bucket].keep); node; |
423 | res_hashchain) { | 424 | node = rb_next(node)) { |
425 | r = rb_entry(node, struct dlm_rsb, res_hashnode); | ||
424 | if (!entry--) { | 426 | if (!entry--) { |
425 | dlm_hold_rsb(r); | 427 | dlm_hold_rsb(r); |
426 | ri->rsb = r; | 428 | ri->rsb = r; |
@@ -449,9 +451,9 @@ static void *table_seq_start(struct seq_file *seq, loff_t *pos) | |||
449 | } | 451 | } |
450 | 452 | ||
451 | spin_lock(&ls->ls_rsbtbl[bucket].lock); | 453 | spin_lock(&ls->ls_rsbtbl[bucket].lock); |
452 | if (!list_empty(&ls->ls_rsbtbl[bucket].list)) { | 454 | if (!RB_EMPTY_ROOT(&ls->ls_rsbtbl[bucket].keep)) { |
453 | r = list_first_entry(&ls->ls_rsbtbl[bucket].list, | 455 | node = rb_first(&ls->ls_rsbtbl[bucket].keep); |
454 | struct dlm_rsb, res_hashchain); | 456 | r = rb_entry(node, struct dlm_rsb, res_hashnode); |
455 | dlm_hold_rsb(r); | 457 | dlm_hold_rsb(r); |
456 | ri->rsb = r; | 458 | ri->rsb = r; |
457 | ri->bucket = bucket; | 459 | ri->bucket = bucket; |
@@ -467,7 +469,7 @@ static void *table_seq_next(struct seq_file *seq, void *iter_ptr, loff_t *pos) | |||
467 | { | 469 | { |
468 | struct dlm_ls *ls = seq->private; | 470 | struct dlm_ls *ls = seq->private; |
469 | struct rsbtbl_iter *ri = iter_ptr; | 471 | struct rsbtbl_iter *ri = iter_ptr; |
470 | struct list_head *next; | 472 | struct rb_node *next; |
471 | struct dlm_rsb *r, *rp; | 473 | struct dlm_rsb *r, *rp; |
472 | loff_t n = *pos; | 474 | loff_t n = *pos; |
473 | unsigned bucket; | 475 | unsigned bucket; |
@@ -480,10 +482,10 @@ static void *table_seq_next(struct seq_file *seq, void *iter_ptr, loff_t *pos) | |||
480 | 482 | ||
481 | spin_lock(&ls->ls_rsbtbl[bucket].lock); | 483 | spin_lock(&ls->ls_rsbtbl[bucket].lock); |
482 | rp = ri->rsb; | 484 | rp = ri->rsb; |
483 | next = rp->res_hashchain.next; | 485 | next = rb_next(&rp->res_hashnode); |
484 | 486 | ||
485 | if (next != &ls->ls_rsbtbl[bucket].list) { | 487 | if (next) { |
486 | r = list_entry(next, struct dlm_rsb, res_hashchain); | 488 | r = rb_entry(next, struct dlm_rsb, res_hashnode); |
487 | dlm_hold_rsb(r); | 489 | dlm_hold_rsb(r); |
488 | ri->rsb = r; | 490 | ri->rsb = r; |
489 | spin_unlock(&ls->ls_rsbtbl[bucket].lock); | 491 | spin_unlock(&ls->ls_rsbtbl[bucket].lock); |
@@ -511,9 +513,9 @@ static void *table_seq_next(struct seq_file *seq, void *iter_ptr, loff_t *pos) | |||
511 | } | 513 | } |
512 | 514 | ||
513 | spin_lock(&ls->ls_rsbtbl[bucket].lock); | 515 | spin_lock(&ls->ls_rsbtbl[bucket].lock); |
514 | if (!list_empty(&ls->ls_rsbtbl[bucket].list)) { | 516 | if (!RB_EMPTY_ROOT(&ls->ls_rsbtbl[bucket].keep)) { |
515 | r = list_first_entry(&ls->ls_rsbtbl[bucket].list, | 517 | next = rb_first(&ls->ls_rsbtbl[bucket].keep); |
516 | struct dlm_rsb, res_hashchain); | 518 | r = rb_entry(next, struct dlm_rsb, res_hashnode); |
517 | dlm_hold_rsb(r); | 519 | dlm_hold_rsb(r); |
518 | ri->rsb = r; | 520 | ri->rsb = r; |
519 | ri->bucket = bucket; | 521 | ri->bucket = bucket; |