diff options
author | Kent Overstreet <kent.overstreet@linux.dev> | 2024-08-08 00:03:54 +0200 |
---|---|---|
committer | Kent Overstreet <kent.overstreet@linux.dev> | 2024-08-08 03:04:55 +0200 |
commit | 6d496e02b4a70926c3bd4e7ab6249ff262eb3bc0 (patch) | |
tree | 37537da92e56817462bfa7ffdc332481565d177f | |
parent | bcachefs: ec should not allocate from ro devs (diff) | |
download | linux-6d496e02b4a70926c3bd4e7ab6249ff262eb3bc0.tar.xz linux-6d496e02b4a70926c3bd4e7ab6249ff262eb3bc0.zip |
bcachefs: Add missing path_traverse() to btree_iter_next_node()
This fixes a bug exposed by the next path - we pop an assert in
path_set_should_be_locked().
Signed-off-by: Kent Overstreet <kent.overstreet@linux.dev>
-rw-r--r-- | fs/bcachefs/btree_iter.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/bcachefs/btree_iter.c b/fs/bcachefs/btree_iter.c index 36872207f09b..aa8a049071f4 100644 --- a/fs/bcachefs/btree_iter.c +++ b/fs/bcachefs/btree_iter.c @@ -1921,6 +1921,11 @@ struct btree *bch2_btree_iter_next_node(struct btree_iter *iter) bch2_trans_verify_not_in_restart(trans); bch2_btree_iter_verify(iter); + ret = bch2_btree_path_traverse(trans, iter->path, iter->flags); + if (ret) + goto err; + + struct btree_path *path = btree_iter_path(trans, iter); /* already at end? */ |