]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
bcachefs: -o norecovery now bails out of recovery earlier
authorKent Overstreet <kent.overstreet@linux.dev>
Sat, 12 Oct 2024 02:53:09 +0000 (22:53 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 21 Dec 2024 06:36:15 +0000 (01:36 -0500)
-o norecovery (used by the dump tool) should be doing the absolute
minimum amount of work to get the filesystem up and readable; we
shouldn't be running check and repair code, or going read-write.

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

index 0e5a53541ce4e474e448624b8fcf336bba8be990..bc2fd174bb329b4ce09a0500d7ba533257e0f44f 100644 (file)
@@ -690,8 +690,13 @@ int bch2_fs_recovery(struct bch_fs *c)
                goto err;
        }
 
-       if (c->opts.norecovery)
-               c->opts.recovery_pass_last = BCH_RECOVERY_PASS_journal_replay - 1;
+       if (c->opts.norecovery) {
+               c->opts.recovery_pass_last = c->opts.recovery_pass_last
+                       ? min(c->opts.recovery_pass_last, BCH_RECOVERY_PASS_snapshots_read)
+                       : BCH_RECOVERY_PASS_snapshots_read;
+               c->opts.nochanges = true;
+               c->opts.read_only = true;
+       }
 
        mutex_lock(&c->sb_lock);
        struct bch_sb_field_ext *ext = bch2_sb_field_get(c->disk_sb.sb, ext);