summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@linux.dev>2024-03-31 23:58:46 -0400
committerKent Overstreet <kent.overstreet@linux.dev>2024-04-02 20:24:00 -0400
commit09aade938673948e75aa1ed6abaaebd49ad6e089 (patch)
treec492b5cf84bf4b8328c820c8cff08a17335d9718
parent5efbe92925bbe26ab925b8aa7bb2af1fa0af5e2e (diff)
bcachefs: Fix errors for second fsck passbtree_root_fix
In debug mode, we run a second fsck pass; previously, we'd bail out immediately if we hit an error in the second run, calling bch2_fs_inconsistent() so the superblock doesn't get updated with error counts. There's no reason not to let the second fsck run proceed and fix more errors, so do so. Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r--fs/bcachefs/recovery.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/fs/bcachefs/recovery.c b/fs/bcachefs/recovery.c
index b76c16152579..7ebe73cc4842 100644
--- a/fs/bcachefs/recovery.c
+++ b/fs/bcachefs/recovery.c
@@ -801,8 +801,6 @@ use_clean:
if (ret)
goto err;
- clear_bit(BCH_FS_fsck_running, &c->flags);
-
/* fsync if we fixed errors */
if (test_bit(BCH_FS_errors_fixed, &c->flags)) {
bch2_journal_flush_all_pins(&c->journal);
@@ -834,6 +832,8 @@ use_clean:
set_bit(BCH_FS_errors_fixed, &c->flags);
}
+ clear_bit(BCH_FS_fsck_running, &c->flags);
+
if (enabled_qtypes(c)) {
bch_verbose(c, "reading quotas");
ret = bch2_fs_quota_read(c);