]> git.karo-electronics.de Git - linux-beck.git/commitdiff
bcache: Fix a bug recovering from unclean shutdown
authorKent Overstreet <kmo@daterainc.com>
Wed, 5 Mar 2014 01:56:24 +0000 (17:56 -0800)
committerKent Overstreet <kmo@daterainc.com>
Tue, 18 Mar 2014 19:22:32 +0000 (12:22 -0700)
The code to fixup incorrect bucket prios incorrectly did not skip btree node
freeing keys

Signed-off-by: Kent Overstreet <kmo@daterainc.com>
drivers/md/bcache/btree.c

index 5f9c2a665ca5079bd372646f70de2117a77b995a..2d4a864865ebcdb84a201ec19dfc1a7affedc9b3 100644 (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;
                        }
                }