summaryrefslogtreecommitdiff
path: root/libbcachefs/btree_gc.c
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-07-12 14:38:07 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-07-12 14:42:54 -0400
commita1764e00cde2c0de798588782f2cc5a2bb307045 (patch)
tree853d825c8b10f560ab55d72f1930c5db27f4d3d0 /libbcachefs/btree_gc.c
parent4be409afea5fb4325eecf78d29dc463fcd9c3e31 (diff)
Update bcachefs sources to 47d1e7a86242 bcachefs: drop packed, aligned from bkey_inode_bufv1.9.3
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'libbcachefs/btree_gc.c')
-rw-r--r--libbcachefs/btree_gc.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/libbcachefs/btree_gc.c b/libbcachefs/btree_gc.c
index 1e4c3e30..6cbf2aa6 100644
--- a/libbcachefs/btree_gc.c
+++ b/libbcachefs/btree_gc.c
@@ -676,6 +676,9 @@ static int bch2_gc_btree(struct btree_trans *trans, enum btree_id btree, bool in
/* root */
do {
+retry_root:
+ bch2_trans_begin(trans);
+
struct btree_iter iter;
bch2_trans_node_iter_init(trans, &iter, btree, POS_MIN,
0, bch2_btree_id_root(c, btree)->b->c.level, 0);
@@ -686,7 +689,7 @@ static int bch2_gc_btree(struct btree_trans *trans, enum btree_id btree, bool in
if (b != btree_node_root(c, b)) {
bch2_trans_iter_exit(trans, &iter);
- continue;
+ goto retry_root;
}
gc_pos_set(c, gc_pos_btree(btree, b->c.level + 1, SPOS_MAX));