bcachefs: Fix missing commit in check_dirents
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 24 May 2025 23:53:03 +0000 (19:53 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Tue, 27 May 2025 04:02:44 +0000 (00:02 -0400)
Other repair code seems to be doing commits themselves, but
check_key_has_snapshot() does not.

Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fsck.c

index 49f46df8340ec473129182e44e93a15e64e73223..8e07a365b24c2dbdfd5909b40910502f670fbb8f 100644 (file)
@@ -2312,9 +2312,10 @@ int bch2_check_dirents(struct bch_fs *c)
        snapshots_seen_init(&s);
 
        int ret = bch2_trans_run(c,
-               for_each_btree_key(trans, iter, BTREE_ID_dirents,
+               for_each_btree_key_commit(trans, iter, BTREE_ID_dirents,
                                POS(BCACHEFS_ROOT_INO, 0),
                                BTREE_ITER_prefetch|BTREE_ITER_all_snapshots, k,
+                               NULL, NULL, BCH_TRANS_COMMIT_no_enospc,
                        check_dirent(trans, &iter, k, &hash_info, &dir, &target, &s)) ?:
                check_subdir_count_notnested(trans, &dir));