bcachefs: Dropped superblock write is no longer a fatal error
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 29 Dec 2024 00:57:04 +0000 (19:57 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 10 Jan 2025 04:38:42 +0000 (23:38 -0500)
Just emit a warning if errors=continue or fix_safe.

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

index dbc09e305c2759e175b578718804ff5f44c031ea..8037ccbacf6afe99b987e5fa85ecb0e06ad29676 100644 (file)
@@ -1084,9 +1084,16 @@ int bch2_write_super(struct bch_fs *c)
                                ": Superblock write was silently dropped! (seq %llu expected %llu)",
                                le64_to_cpu(ca->sb_read_scratch->seq),
                                ca->disk_sb.seq);
-                       bch2_fs_fatal_error(c, "%s", buf.buf);
+
+                       if (c->opts.errors != BCH_ON_ERROR_continue &&
+                           c->opts.errors != BCH_ON_ERROR_fix_safe) {
+                               ret = -BCH_ERR_erofs_sb_err;
+                               bch2_fs_fatal_error(c, "%s", buf.buf);
+                       } else {
+                               bch_err(c, "%s", buf.buf);
+                       }
+
                        printbuf_exit(&buf);
-                       ret = -BCH_ERR_erofs_sb_err;
                }
 
                if (le64_to_cpu(ca->sb_read_scratch->seq) > ca->disk_sb.seq) {