Commit 63069bb6 authored by Kent Overstreet's avatar Kent Overstreet Committed by Kent Overstreet

bcachefs: Move node iterator fixup to extent_bset_insert()

Signed-off-by: default avatarKent Overstreet <kent.overstreet@linux.dev>
parent 23bbd2bb
...@@ -915,6 +915,16 @@ static void extent_bset_insert(struct bch_fs *c, struct btree_iter *iter, ...@@ -915,6 +915,16 @@ static void extent_bset_insert(struct bch_fs *c, struct btree_iter *iter,
bch2_extent_merge_inline(c, iter, bkey_to_packed(insert), k, false)) bch2_extent_merge_inline(c, iter, bkey_to_packed(insert), k, false))
return; return;
/*
* may have skipped past some deleted extents greater than the insert
* key, before we got to a non deleted extent and knew we could bail out
* rewind the iterator a bit if necessary:
*/
node_iter = l->iter;
while ((k = bch2_btree_node_iter_prev_all(&node_iter, l->b)) &&
bkey_cmp_left_packed(l->b, k, &insert->k.p) > 0)
l->iter = node_iter;
k = bch2_btree_node_iter_bset_pos(&l->iter, l->b, bset_tree_last(l->b)); k = bch2_btree_node_iter_bset_pos(&l->iter, l->b, bset_tree_last(l->b));
bch2_bset_insert(l->b, &l->iter, k, insert, 0); bch2_bset_insert(l->b, &l->iter, k, insert, 0);
...@@ -1203,19 +1213,6 @@ static void __bch2_insert_fixup_extent(struct bch_fs *c, ...@@ -1203,19 +1213,6 @@ static void __bch2_insert_fixup_extent(struct bch_fs *c,
overlap == BCH_EXTENT_OVERLAP_MIDDLE) overlap == BCH_EXTENT_OVERLAP_MIDDLE)
break; break;
} }
/*
* may have skipped past some deleted extents greater than the insert
* key, before we got to a non deleted extent and knew we could bail out
* rewind the iterator a bit if necessary:
*/
{
struct btree_node_iter node_iter = l->iter;
while ((_k = bch2_btree_node_iter_prev_all(&node_iter, l->b)) &&
bkey_cmp_left_packed(l->b, _k, &insert->k.p) > 0)
l->iter = node_iter;
}
} }
/** /**
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment