bcachefs: Extent btree iterators are no longer special
authorKent Overstreet <kent.overstreet@gmail.com>
Sun, 5 Sep 2021 01:19:48 +0000 (21:19 -0400)
committerKent Overstreet <kent.overstreet@linux.dev>
Sun, 22 Oct 2023 21:09:11 +0000 (17:09 -0400)
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>
fs/bcachefs/btree_iter.c

index edb4084f7b9092768a79a2ecc9e0cc3f92a164aa..16384543149e30a26c00753384314573bcc68d68 100644 (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 @@ fixup_done:
         */
        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;