summaryrefslogtreecommitdiffstats
path: root/fs/bcachefs
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2025-06-17 16:41:43 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2025-06-17 20:45:26 -0400
commit3f890768dab1f97ff9bd7ebb76f4c52309401501 (patch)
tree081d527cef584b3001ab8a2306968dfdd45710c9 /fs/bcachefs
parentbcachefs: fsck: Fix check_directory_structure when no check_dirents (diff)
downloadlinux-3f890768dab1f97ff9bd7ebb76f4c52309401501.tar.gz
linux-3f890768dab1f97ff9bd7ebb76f4c52309401501.zip
bcachefs: fsck: fix unhandled restart in topology repair
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
Diffstat (limited to 'fs/bcachefs')
-rw-r--r--fs/bcachefs/btree_gc.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/fs/bcachefs/btree_gc.c b/fs/bcachefs/btree_gc.c
index e92cf3928c63..697c6ecc3a65 100644
--- a/fs/bcachefs/btree_gc.c
+++ b/fs/bcachefs/btree_gc.c
@@ -503,8 +503,14 @@ again:
prt_newline(&buf);
bch2_bkey_val_to_text(&buf, c, bkey_i_to_s_c(&b->key));
+ /*
+ * XXX: we're not passing the trans object here because we're not set up
+ * to handle a transaction restart - this code needs to be rewritten
+ * when we start doing online topology repair
+ */
+ bch2_trans_unlock_long(trans);
if (mustfix_fsck_err_on(!have_child,
- trans, btree_node_topology_interior_node_empty,
+ c, btree_node_topology_interior_node_empty,
"empty interior btree node at %s", buf.buf))
ret = DROP_THIS_NODE;
err: