From 913531752be1446962a36c9216a3011cd39720ae Mon Sep 17 00:00:00 2001 From: Fan Yong Date: Tue, 4 Mar 2014 19:40:48 +0800 Subject: [PATCH] LU-4777 lfsck: redefine LFSCK_RBTREE_BITMAP_MASK It should be the rbtree bitmap bits size, not the bytes size. Signed-off-by: Fan Yong Change-Id: I0c090702f3f2f5037926d6384b605751a0a9c948 Reviewed-on: http://review.whamcloud.com/9703 Tested-by: Jenkins Tested-by: Maloo Reviewed-by: Andreas Dilger Reviewed-by: Lai Siyao Reviewed-by: Alex Zhuravlev --- lustre/lfsck/lfsck_layout.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/lustre/lfsck/lfsck_layout.c b/lustre/lfsck/lfsck_layout.c index 0d5d7e2..de96726 100644 --- a/lustre/lfsck/lfsck_layout.c +++ b/lustre/lfsck/lfsck_layout.c @@ -368,7 +368,7 @@ static int lfsck_layout_verify_header(struct lov_mds_md_v1 *lmm) #define LFSCK_RBTREE_BITMAP_SIZE PAGE_CACHE_SIZE #define LFSCK_RBTREE_BITMAP_WIDTH (LFSCK_RBTREE_BITMAP_SIZE << 3) -#define LFSCK_RBTREE_BITMAP_MASK (LFSCK_RBTREE_BITMAP_SIZE - 1) +#define LFSCK_RBTREE_BITMAP_MASK (LFSCK_RBTREE_BITMAP_WIDTH - 1) struct lfsck_rbtree_node { struct rb_node lrn_node; @@ -392,7 +392,7 @@ static inline int lfsck_rbtree_cmp(struct lfsck_rbtree_node *lrn, if (oid < lrn->lrn_first_oid) return -1; - if (oid >= lrn->lrn_first_oid + LFSCK_RBTREE_BITMAP_WIDTH) + if (oid - lrn->lrn_first_oid >= LFSCK_RBTREE_BITMAP_WIDTH) return 1; return 0; @@ -492,19 +492,19 @@ static struct lfsck_rbtree_node * lfsck_rbtree_insert(struct lfsck_layout_slave_data *llsd, struct lfsck_rbtree_node *lrn) { - struct rb_node **pos = &(llsd->llsd_rb_root.rb_node); + struct rb_node **pos = &llsd->llsd_rb_root.rb_node; struct rb_node *parent = NULL; struct lfsck_rbtree_node *tmp; int rc; - while (*pos) { + while (*pos != NULL) { parent = *pos; - tmp = rb_entry(*pos, struct lfsck_rbtree_node, lrn_node); + tmp = rb_entry(parent, struct lfsck_rbtree_node, lrn_node); rc = lfsck_rbtree_cmp(tmp, lrn->lrn_seq, lrn->lrn_first_oid); if (rc < 0) - pos = &((*pos)->rb_left); + pos = &(*pos)->rb_left; else if (rc > 0) - pos = &((*pos)->rb_right); + pos = &(*pos)->rb_right; else return tmp; } -- 1.8.3.1