diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index a4cb4b642987..09a452920600 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c @@ -2299,6 +2299,8 @@ int btrfs_search_slot(struct btrfs_trans_handle *trans, struct btrfs_root *root, goto done; } } else { + if (!p->nodes[0]) + goto again; btrfs_tree_read_lock(b); } p->locks[level] = BTRFS_READ_LOCK;