btrfs: don't double unlock on error in btrfs_punch_hole
commit 8fca955057b9c58467d1b231e43f19c4cf26ae8c upstream. If we have an error writing out a delalloc range in btrfs_punch_hole_lock_range we'll unlock the inode and then goto out_only_mutex, where we will again unlock the inode. This is bad, don't do this. Fixes: f27451f22996 ("Btrfs: add support for fallocate's zero range operation") CC: stable@vger.kernel.org # 4.19+ Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Josef Bacik <josef@toxicpanda.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
parent
fdc78eedc5
commit
ce21e6586e
@ -2565,10 +2565,8 @@ static int btrfs_punch_hole(struct inode *inode, loff_t offset, loff_t len)
|
|||||||
|
|
||||||
ret = btrfs_punch_hole_lock_range(inode, lockstart, lockend,
|
ret = btrfs_punch_hole_lock_range(inode, lockstart, lockend,
|
||||||
&cached_state);
|
&cached_state);
|
||||||
if (ret) {
|
if (ret)
|
||||||
inode_unlock(inode);
|
|
||||||
goto out_only_mutex;
|
goto out_only_mutex;
|
||||||
}
|
|
||||||
|
|
||||||
path = btrfs_alloc_path();
|
path = btrfs_alloc_path();
|
||||||
if (!path) {
|
if (!path) {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user