diff options
author | 2024-12-29 09:37:15 -0500 | |
---|---|---|
committer | 2025-01-09 23:38:42 -0500 | |
commit | d3d0fac57d4679024199706a2aa6d2a4a477bfa3 (patch) | |
tree | 417689f91f3caea363956d5735d67287e70cd4fe | |
parent | bcachefs: Don't set btree_path to updtodate if we don't fill (diff) | |
download | wireguard-linux-d3d0fac57d4679024199706a2aa6d2a4a477bfa3.tar.xz wireguard-linux-d3d0fac57d4679024199706a2aa6d2a4a477bfa3.zip |
bcachefs: bch2_btree_iter_peek_slot() handles navigating to nonexistent depth
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index c291d495b85b..367231ab1980 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -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; |