bcachefs: Fix check_inodes()
authorKent Overstreet <kent.overstreet@gmail.com>
Thu, 4 Nov 2021 00:25:35 +0000 (20:25 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:16 +0000 (17:09 -0400)
We were starting at the wrong btree position, and thus not actually
checking any inodes - oops.

Also, make check_key_has_snapshot() a mustfix fsck error, since later
fsck code assumes that all keys have valid snapshot IDs.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
fs/bcachefs/fsck.c

index 5bc04c7bbb83092e179bc31111f55618cddde79a..8a9cfccf5ee842ec4cf761c2cc906c539359c5c7 100644 (file)
@@ -669,7 +669,7 @@ static int check_key_has_snapshot(struct btree_trans *trans,
        char buf[200];
        int ret = 0;
 
-       if (fsck_err_on(!snapshot_t(c, k.k->p.snapshot)->equiv, c,
+       if (mustfix_fsck_err_on(!snapshot_t(c, k.k->p.snapshot)->equiv, c,
                        "key in missing snapshot: %s",
                        (bch2_bkey_val_to_text(&PBUF(buf), c, k), buf)))
                return bch2_btree_delete_at(trans, iter,
@@ -918,8 +918,7 @@ static int check_inodes(struct bch_fs *c, bool full)
 
        bch2_trans_init(&trans, c, BTREE_ITER_MAX, 0);
 
-       bch2_trans_iter_init(&trans, &iter, BTREE_ID_inodes,
-                            POS(BCACHEFS_ROOT_INO, 0),
+       bch2_trans_iter_init(&trans, &iter, BTREE_ID_inodes, POS_MIN,
                             BTREE_ITER_INTENT|
                             BTREE_ITER_PREFETCH|
                             BTREE_ITER_ALL_SNAPSHOTS);