summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-03-21 19:12:52 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-03-21 19:12:52 -0400
commit2e1894388d20bbc9397248daf39c62d36d2f86ea (patch)
tree7306b9b6b8ce6e79e78a8d4711e1307cb1803819
parent8c0fe88ca2ca8dae7f5723ffb89a069743974279 (diff)
bcachefs: Fix error handling in gc
-rw-r--r--fs/bcachefs/btree_gc.c9
1 files changed, 4 insertions, 5 deletions
diff --git a/fs/bcachefs/btree_gc.c b/fs/bcachefs/btree_gc.c
index 634b69a4dcb0..af75878c06bd 100644
--- a/fs/bcachefs/btree_gc.c
+++ b/fs/bcachefs/btree_gc.c
@@ -258,15 +258,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)