summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-12-01 11:42:23 -0500
committerKent Overstreet <kent.overstreet@gmail.com>2020-12-07 11:50:41 -0500
commit2a4c739d4b541d576d6ef53a3db162dc02db08a0 (patch)
tree51bf5b78fda071acca93f03ff7b3f64a860d762c
parent873da5dcfc61df22dc3e87608dc0d9fde33d5ad8 (diff)
bcachefs: Fix for fsck spuriously finding duplicate extents
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/fsck.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/bcachefs/fsck.c b/fs/bcachefs/fsck.c
index 09ce6c29b88c..7449819d8eac 100644
--- a/fs/bcachefs/fsck.c
+++ b/fs/bcachefs/fsck.c
@@ -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];