Prechádzať zdrojové kódy

bcache: Fix a bug recovering from unclean shutdown

The code to fixup incorrect bucket prios incorrectly did not skip btree node
freeing keys

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
Kent Overstreet 11 rokov pred
rodič
commit
0bd143fd80
1 zmenil súbory, kde vykonal 2 pridanie a 2 odobranie
  1. 2 2
      drivers/md/bcache/btree.c

+ 2 - 2
drivers/md/bcache/btree.c

@@ -1726,9 +1726,9 @@ static int bch_btree_check_recurse(struct btree *b, struct btree_op *op,
 			    !ptr_stale(b->c, k, i)) {
 				g->gen = PTR_GEN(k, i);
 
-				if (b->level)
+				if (b->level && bkey_cmp(k, &ZERO_KEY))
 					g->prio = BTREE_PRIO;
-				else if (g->prio == BTREE_PRIO)
+				else if (!b->level && g->prio == BTREE_PRIO)
 					g->prio = INITIAL_PRIO;
 			}
 		}