bcachefs: Fix hash_check_key()
authorKent Overstreet <kent.overstreet@linux.dev>
Wed, 1 Feb 2023 21:46:42 +0000 (16:46 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:50 +0000 (17:09 -0400)
On hash collision when we have to check for duplicates or incorrect
hash value, we weren't specifying a snapshot ID to iterate with.

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

index 0124aa0b14c561dd233f4557bf05270d54ad948f..e0d7ab67ca353d19893f71373cc3ede5bcaffa43 100644 (file)
@@ -821,7 +821,7 @@ static int hash_check_key(struct btree_trans *trans,
                goto bad_hash;
 
        for_each_btree_key_norestart(trans, iter, desc.btree_id,
-                                    POS(hash_k.k->p.inode, hash),
+                                    SPOS(hash_k.k->p.inode, hash, hash_k.k->p.snapshot),
                                     BTREE_ITER_SLOTS, k, ret) {
                if (bkey_eq(k.k->p, hash_k.k->p))
                        break;