From: Josef Bacik Date: Fri, 7 Feb 2014 17:21:23 +0000 (-0500) Subject: Btrfs: unlock extent and pages on error in cow_file_range X-Git-Tag: firefly_0821_release~176^2~3883^2~122 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=29bce2f3997a8dc5195b7a7724362d1e55df7bb2;p=firefly-linux-kernel-4.4.55.git Btrfs: unlock extent and pages on error in cow_file_range When I converted the BUG_ON() for the free_space_cache_inode in cow_file_range I made it so we just return an error instead of unlocking all of our various stuff. This is a mistake and causes us to hang when we run into this. This patch fixes this problem. Thanks, Signed-off-by: Josef Bacik --- diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index a7e6690e0946..5b8925003090 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -864,7 +864,8 @@ static noinline int cow_file_range(struct inode *inode, if (btrfs_is_free_space_inode(inode)) { WARN_ON_ONCE(1); - return -EINVAL; + ret = -EINVAL; + goto out_unlock; } num_bytes = ALIGN(end - start + 1, blocksize);