diff options
Diffstat (limited to 'fs/btrfs/ioctl.c')
-rw-r--r-- | fs/btrfs/ioctl.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 2c02310ff2d9..9c44d657b795 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c | |||
@@ -723,7 +723,9 @@ static noinline int btrfs_mksubvol(struct path *parent, | |||
723 | struct dentry *dentry; | 723 | struct dentry *dentry; |
724 | int error; | 724 | int error; |
725 | 725 | ||
726 | mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); | 726 | error = mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); |
727 | if (error == -EINTR) | ||
728 | return error; | ||
727 | 729 | ||
728 | dentry = lookup_one_len(name, parent->dentry, namelen); | 730 | dentry = lookup_one_len(name, parent->dentry, namelen); |
729 | error = PTR_ERR(dentry); | 731 | error = PTR_ERR(dentry); |
@@ -2086,7 +2088,9 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file, | |||
2086 | if (err) | 2088 | if (err) |
2087 | goto out; | 2089 | goto out; |
2088 | 2090 | ||
2089 | mutex_lock_nested(&dir->i_mutex, I_MUTEX_PARENT); | 2091 | err = mutex_lock_killable_nested(&dir->i_mutex, I_MUTEX_PARENT); |
2092 | if (err == -EINTR) | ||
2093 | goto out; | ||
2090 | dentry = lookup_one_len(vol_args->name, parent, namelen); | 2094 | dentry = lookup_one_len(vol_args->name, parent, namelen); |
2091 | if (IS_ERR(dentry)) { | 2095 | if (IS_ERR(dentry)) { |
2092 | err = PTR_ERR(dentry); | 2096 | err = PTR_ERR(dentry); |