]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Don't rewind recovery if not in recovery
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 10 May 2025 21:19:05 +0000 (17:19 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Thu, 22 May 2025 00:14:56 +0000 (20:14 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/recovery_passes.c

index 5f2bd8c10ce628e20f870ee9cbc4b19fa593e5da..22cefffcf1fa74fd7da5bc6b4c010032e08805dc 100644 (file)
@@ -233,7 +233,8 @@ static int __bch2_run_explicit_recovery_pass(struct printbuf *out,
 
        c->opts.recovery_passes |= BIT_ULL(pass);
 
-       if (c->curr_recovery_pass > pass) {
+       if (test_bit(BCH_FS_in_recovery, &c->flags) &&
+           c->curr_recovery_pass > pass) {
                c->next_recovery_pass = pass;
                c->recovery_passes_complete &= (1ULL << pass) >> 1;
                return -BCH_ERR_restart_recovery;