]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bcachefs: Make btree root read errors recoverable
authorKent Overstreet <kent.overstreet@linux.dev>
Tue, 26 Sep 2023 21:21:21 +0000 (17:21 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:10:15 +0000 (17:10 -0400)
The entire btree will be lost, but that is better than the entire
filesystem not being recoverable.

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

index 1dceb7eeb20562663e9297d16be728cb59e6a9f8..9dbaf080dcdd4305fd55c1a4cc0d05d8ac0d327c 100644 (file)
@@ -374,13 +374,12 @@ static int read_btree_roots(struct bch_fs *c)
 
                ret = bch2_btree_root_read(c, i, &r->key, r->level);
                if (ret) {
-                       __fsck_err(c,
-                                  btree_id_is_alloc(i)
-                                  ? FSCK_CAN_IGNORE : 0,
-                                  "error reading btree root %s",
-                                  bch2_btree_ids[i]);
+                       fsck_err(c,
+                                "error reading btree root %s",
+                                bch2_btree_ids[i]);
                        if (btree_id_is_alloc(i))
                                c->sb.compat &= ~(1ULL << BCH_COMPAT_alloc_info);
+                       ret = 0;
                }
        }