diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-03-31 23:58:46 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-04-02 20:24:00 -0400 |
commit | 09aade938673948e75aa1ed6abaaebd49ad6e089 (patch) | |
tree | c492b5cf84bf4b8328c820c8cff08a17335d9718 | |
parent | 5efbe92925bbe26ab925b8aa7bb2af1fa0af5e2e (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.c | 4 |
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); |