Commit eab3a3ce authored by Kent Overstreet's avatar Kent Overstreet
Browse files

bcachefs: Fix overlapping extent repair



overlapping extent repair was colliding with extent past end of inode
checks - don't update "extent ends at" until we know we have an extent.

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 8ce1db80
Loading
Loading
Loading
Loading
+6 −4
Original line number Diff line number Diff line
@@ -1372,10 +1372,6 @@ static int check_overlapping_extents(struct btree_trans *trans,
			goto err;
	}

	ret = extent_ends_at(c, extent_ends, seen, k);
	if (ret)
		goto err;

	extent_ends->last_pos = k.k->p;
err:
	return ret;
@@ -1505,6 +1501,12 @@ static int check_extent(struct btree_trans *trans, struct btree_iter *iter,

		i->seen_this_pos = true;
	}

	if (k.k->type != KEY_TYPE_whiteout) {
		ret = extent_ends_at(c, extent_ends, s, k);
		if (ret)
			goto err;
	}
out:
err:
fsck_err: