bcachefs: Fix for fsck spuriously finding duplicate extents
authorKent Overstreet <kent.overstreet@gmail.com>
Tue, 1 Dec 2020 16:42:23 +0000 (11:42 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:08:48 +0000 (17:08 -0400)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/fsck.c

index 09ce6c29b88cf91e85a57d6c9abce4b7bf56fa5d..7449819d8eac536863a9114ab4d2cd36b4227543 100644 (file)
@@ -485,7 +485,11 @@ static int check_extents(struct bch_fs *c)
                                   BTREE_ITER_INTENT);
 retry:
        for_each_btree_key_continue(iter, 0, k, ret) {
-               if (bkey_cmp(prev.k->k.p, bkey_start_pos(k.k)) > 0) {
+               /*
+                * due to retry errors we might see the same extent twice:
+                */
+               if (bkey_cmp(prev.k->k.p, k.k->p) &&
+                   bkey_cmp(prev.k->k.p, bkey_start_pos(k.k)) > 0) {
                        char buf1[200];
                        char buf2[200];