]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Ensure superblock gets written when we go ERO
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 7 May 2025 20:54:25 +0000 (16:54 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Wed, 7 May 2025 21:09:59 +0000 (17:09 -0400)
When we go emergency read-only, make sure we do a final write_super() to
persist counters and error counts - this can be critical for piecing
together what fsck was doing.

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

index 27943082c093c349394ba493ddbbbc132bf7568f..84a37d971ffdae113ad2e2c2279a1a7a740ecf57 100644 (file)
@@ -377,6 +377,11 @@ void bch2_fs_read_only(struct bch_fs *c)
                bch_verbose(c, "marking filesystem clean");
                bch2_fs_mark_clean(c);
        } else {
+               /* Make sure error counts/counters are persisted */
+               mutex_lock(&c->sb_lock);
+               bch2_write_super(c);
+               mutex_unlock(&c->sb_lock);
+
                bch_verbose(c, "done going read-only, filesystem not clean");
        }
 }