diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index a4cb4b642987..bad4f341d6c3 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c @@ -1832,12 +1832,12 @@ static struct extent_buffer *btrfs_search_slot_get_root(struct btrfs_root *root, b = btrfs_read_lock_root_node(root); } level = btrfs_header_level(b); - if (level > write_lock_level) - goto out; /* Whoops, must trade for write lock */ btrfs_tree_read_unlock(b); free_extent_buffer(b); + if (level > write_lock_level) + goto out; } b = btrfs_lock_root_node(root);