summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKent Overstreet <kent.overstreet@gmail.com>2020-03-21 14:08:01 -0400
committerKent Overstreet <kent.overstreet@gmail.com>2020-03-21 14:08:19 -0400
commit6de9b61b64b2bc0fbf677a062fdc8ffb3056e1c6 (patch)
tree76d948fa10716c0afdd24a84ecc8a44acf286625
parent5696e6621c3e6cdf3b10f558f7c578a030c7d459 (diff)
bcachefs: Fix count_iters_for_insert()
This fixes a transaction iterator overflow. Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
-rw-r--r--fs/bcachefs/extent_update.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/extent_update.c b/fs/bcachefs/extent_update.c
index beb3b694e33c..8e5070d5a39b 100644
--- a/fs/bcachefs/extent_update.c
+++ b/fs/bcachefs/extent_update.c
@@ -44,6 +44,10 @@ static int count_iters_for_insert(struct btree_trans *trans,
* extent we're inserting and overwriting:
*/
*nr_iters += 1;
+ if (*nr_iters >= max_iters) {
+ *end = bpos_min(*end, k.k->p);
+ ret = 1;
+ }
switch (k.k->type) {
case KEY_TYPE_extent: