diff options
author | Kent Overstreet <kmo@daterainc.com> | 2014-03-04 17:56:24 -0800 |
---|---|---|
committer | Kent Overstreet <kmo@daterainc.com> | 2014-03-18 12:22:32 -0700 |
commit | 0bd143fd800055b1db756693289bbebdb93f2a73 (patch) | |
tree | 72c057a83e125fba50aec10c353cad6654958f63 /drivers/md/bcache | |
parent | 27201cfdaa2aeb571191494c1bae6863ffb04108 (diff) | |
download | op-kernel-dev-0bd143fd800055b1db756693289bbebdb93f2a73.zip op-kernel-dev-0bd143fd800055b1db756693289bbebdb93f2a73.tar.gz |
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>
Diffstat (limited to 'drivers/md/bcache')
-rw-r--r-- | drivers/md/bcache/btree.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/drivers/md/bcache/btree.c b/drivers/md/bcache/btree.c index 5f9c2a6..2d4a864 100644 --- a/drivers/md/bcache/btree.c +++ b/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; } } |