]> www.infradead.org Git - linux.git/commitdiff
bcachefs: bch2_btree_iter_peek_slot() handles navigating to nonexistent depth
authorKent Overstreet <kent.overstreet@linux.dev>
Sun, 29 Dec 2024 14:37:15 +0000 (09:37 -0500)
committerKent Overstreet <kent.overstreet@linux.dev>
Fri, 10 Jan 2025 04:38:42 +0000 (23:38 -0500)
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
fs/bcachefs/btree_iter.c

index c291d495b85baddccbd24bcc8bbac0167965584e..367231ab1980b13ef1f70e73a3dedeb8bb1642dd 100644 (file)
@@ -2770,6 +2770,10 @@ struct bkey_s_c bch2_btree_iter_peek_slot(struct btree_iter *iter)
                goto out_no_locked;
        }
 
+       struct btree_path *path = btree_iter_path(trans, iter);
+       if (unlikely(!btree_path_node(path, path->level)))
+               return bkey_s_c_null;
+
        if ((iter->flags & BTREE_ITER_cached) ||
            !(iter->flags & (BTREE_ITER_is_extents|BTREE_ITER_filter_snapshots))) {
                k = bkey_s_c_null;