bcachefs: Go RW earlier, for normal rw mount
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 27 Nov 2024 02:27:16 +0000 (21:27 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sat, 21 Dec 2024 06:36:20 +0000 (01:36 -0500)
Previously, when mounting read-write after a clean shutdown, we wouldn't
go read-write until after all the recovery passes completed.

Now, go RW early in recovery, the same as any other situation we'll need
to go read-write. This fixes a bug where we discover unlinked inodes
after a clean shutdown: repair fails because we're read only.

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

index 1240c5c19feaae2cfbb93b7a6826b4ae6190a0ef..f6d3a99cb63ee7c6a1b5fb2c3bcda1cca8804f1c 100644 (file)
@@ -46,7 +46,7 @@ static int bch2_set_may_go_rw(struct bch_fs *c)
 
        set_bit(BCH_FS_may_go_rw, &c->flags);
 
-       if (keys->nr || c->opts.fsck || !c->sb.clean || c->opts.recovery_passes)
+       if (keys->nr || !c->opts.read_only || c->opts.fsck || !c->sb.clean || c->opts.recovery_passes)
                return bch2_fs_read_write_early(c);
        return 0;
 }