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>
This commit is contained in:
Kent Overstreet 2014-03-04 17:56:24 -08:00
parent 27201cfdaa
commit 0bd143fd80

View File

@ -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;
}
}