diff options
author | Kent Overstreet <kent.overstreet@gmail.com> | 2019-10-16 13:48:12 -0400 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@gmail.com> | 2019-10-16 13:48:46 -0400 |
commit | fc4f1d59cf9330bbb27cd12c459706aa5e7fe33c (patch) | |
tree | 81242f9cd8514f009bff03d0c72c6e71de021614 | |
parent | 77340b57d8a742551476adddc3632254e6981bab (diff) |
bcachefs: Fix an iterator counting bug
The iterator counting assumed we're doing an obvious optimization when
only updating the refcount on indirect extents - but we're not doing it
yet.
Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r-- | fs/bcachefs/extents.c | 15 |
1 files changed, 1 insertions, 14 deletions
diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index b1f9269a54e3..34eb70cea206 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -972,20 +972,7 @@ static int count_iters_for_insert(struct btree_trans *trans, POS(0, idx + sectors)) >= 0) break; - *nr_iters += 1; - - if (overwrite && - r_k.k->type == KEY_TYPE_reflink_v) { - struct bkey_s_c_reflink_v r = bkey_s_c_to_reflink_v(r_k); - - if (le64_to_cpu(r.v->refcount) == 1) - *nr_iters += bch2_bkey_nr_alloc_ptrs(r_k); - } - - /* - * if we're going to be deleting an entry from - * the reflink btree, need more iters... - */ + *nr_iters += 1 + bch2_bkey_nr_alloc_ptrs(r_k); if (*nr_iters >= max_iters) { struct bpos pos = bkey_start_pos(k.k); |