diff options
Diffstat (limited to 'fs/btrfs/extent-tree.c')
| -rw-r--r-- | fs/btrfs/extent-tree.c | 4 | 
1 files changed, 3 insertions, 1 deletions
| diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index 94bed61b799f..6526f1faf6c2 100644 --- a/fs/btrfs/extent-tree.c +++ b/fs/btrfs/extent-tree.c @@ -7087,8 +7087,10 @@ static noinline int do_walk_down(struct btrfs_trans_handle *trans,  		if (reada && level == 1)  			reada_walk_down(trans, root, wc, path);  		next = read_tree_block(root, bytenr, blocksize, generation); -		if (!next) +		if (!next || !extent_buffer_uptodate(next)) { +			free_extent_buffer(next);  			return -EIO; +		}  		btrfs_tree_lock(next);  		btrfs_set_lock_blocking(next);  	} | 
