From 63069bb6bf03ac7a55c53886a1380899df3a176d Mon Sep 17 00:00:00 2001 From: Kent Overstreet <kent.overstreet@gmail.com> Date: Tue, 20 Aug 2019 17:46:22 -0400 Subject: [PATCH] bcachefs: Move node iterator fixup to extent_bset_insert() Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev> --- fs/bcachefs/extents.c | 23 ++++++++++------------- 1 file changed, 10 insertions(+), 13 deletions(-) diff --git a/fs/bcachefs/extents.c b/fs/bcachefs/extents.c index 9f17780b8bc05..0e43e81065b6f 100644 --- a/fs/bcachefs/extents.c +++ b/fs/bcachefs/extents.c @@ -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)) 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)); bch2_bset_insert(l->b, &l->iter, k, insert, 0); @@ -1203,19 +1213,6 @@ next: overlap == BCH_EXTENT_OVERLAP_MIDDLE) 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; - } } /** -- 2.30.2