diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index bbf9bf3740664e6e3d521377d1cff0de4afa9e87..cdc713062b03864e56c83ccf7db9cf77cbacce31 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c @@ -3206,7 +3206,8 @@ int btrfs_next_leaf(struct btrfs_root *root, struct btrfs_path *path) free_extent_buffer(next); } - if (level == 1 && path->locks[1] && path->reada) + if (level == 1 && (path->locks[1] || path->skip_locking) && + path->reada) reada_for_search(root, path, level, slot, 0); next = read_node_slot(root, c, slot);