summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2019-10-12 14:44:09 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2019-10-12 14:44:24 -0400
commitde906c3e2eddad291d46bd0e7c81c68eaadcd08a (patch)
treee635129affb28f5ebfbcdae0d9b7e5be1d672c8a
parent1e4d4f3695577e5c89ebf2164853e9db92f12ae8 (diff)
bcachefs: Fix iterator counting for reflink pointers (again)
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/extents.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c
index dcd70994e14b..b1f9269a54e3 100644
--- a/fs/bcachefs/extents.c
+++ b/fs/bcachefs/extents.c
@@ -960,7 +960,8 @@ static int count_iters_for_insert(struct btree_trans *trans,
case KEY_TYPE_reflink_p: {
struct bkey_s_c_reflink_p p = bkey_s_c_to_reflink_p(k);
u64 idx = le64_to_cpu(p.v->idx);
- unsigned sectors = end->offset - bkey_start_offset(p.k);
+ unsigned sectors = bpos_min(*end, p.k->p).offset -
+ bkey_start_offset(p.k);
struct btree_iter *iter;
struct bkey_s_c r_k;