bcachefs: Fix error handling in gc
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 21 Mar 2019 23:12:52 +0000 (19:12 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:18 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_gc.c

index 0069d6cb6e5dd6d39c10281cd0b1eb61044d6352..302793d84b9293e6496e1530fd2c7a4df4287655 100644 (file)
@@ -261,15 +261,14 @@ static int bch2_gc_btree(struct bch_fs *c, enum btree_id btree_id,
                return ret;
 
        mutex_lock(&c->btree_root_lock);
-
        b = c->btree_roots[btree_id].b;
        if (!btree_node_fake(b))
-               bch2_gc_mark_key(c, bkey_i_to_s_c(&b->key),
-                                &max_stale, initial);
+               ret = bch2_gc_mark_key(c, bkey_i_to_s_c(&b->key),
+                                      &max_stale, initial);
        gc_pos_set(c, gc_pos_btree_root(b->btree_id));
-
        mutex_unlock(&c->btree_root_lock);
-       return 0;
+
+       return ret;
 }
 
 static inline int btree_id_gc_phase_cmp(enum btree_id l, enum btree_id r)