bcachefs: Extent btree iterators are no longer special

Since iter->real_pos was introduced, we no longer have to deal with
extent btree iterators that have skipped past deleted keys - this is a
real performance improvement on btree updates.

Signed-off-by: Kent Overstreet <kent.overstreet@gmail.com>
This commit is contained in:
Kent Overstreet 2021-09-04 21:19:48 -04:00 committed by Kent Overstreet
parent 068bcaa589
commit 1ae29c1faa

View File

@ -601,13 +601,9 @@ static void bch2_btree_path_verify_level(struct btree_trans *trans,
bch2_btree_node_iter_verify(&l->iter, l->b);
/*
* For interior nodes, the iterator will have skipped past
* deleted keys:
*
* For extents, the iterator may have skipped past deleted keys (but not
* whiteouts)
* For interior nodes, the iterator will have skipped past deleted keys:
*/
p = level || btree_node_type_is_extents(path->btree_id)
p = level
? bch2_btree_node_iter_prev(&tmp, l->b)
: bch2_btree_node_iter_prev_all(&tmp, l->b);
k = bch2_btree_node_iter_peek_all(&l->iter, l->b);
@ -829,8 +825,7 @@ static void __bch2_btree_node_iter_fix(struct btree_path *path,
*/
if (!bch2_btree_node_iter_end(node_iter) &&
iter_current_key_modified &&
(b->c.level ||
btree_node_type_is_extents(path->btree_id))) {
b->c.level) {
struct bset_tree *t;
struct bkey_packed *k, *k2, *p;