summaryrefslogtreecommitdiffstats
path: root/fs/btrfs/ioctl.c
diff options
context:
space:
mode:
authorYan Zheng <zheng.yan@oracle.com>2008-12-19 16:58:39 +0100
committerChris Mason <chris.mason@oracle.com>2008-12-19 16:58:39 +0100
commitab67b7c1f780a8a321fe7ee49117775009350fb3 (patch)
tree35a7ac2e5f641d8f11d472d7f84601d16f4fcddc /fs/btrfs/ioctl.c
parentBtrfs: fix return value from btrfs_listxattr when buffer size is too small (diff)
downloadlinux-ab67b7c1f780a8a321fe7ee49117775009350fb3.tar.xz
linux-ab67b7c1f780a8a321fe7ee49117775009350fb3.zip
Btrfs: Add missing mnt_drop_write in ioctl.c
This patch adds the missing mnt_drop_write to match mnt_want_write in btrfs_ioctl_defrag and btrfs_ioctl_clone Signed-off-by: Yan Zheng <zheng.yan@oracle.com>
Diffstat (limited to '')
-rw-r--r--fs/btrfs/ioctl.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 5d67858ce993..ab429fe0fa0f 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -646,6 +646,7 @@ static int btrfs_ioctl_defrag(struct file *file)
break;
}
+ mnt_drop_write(file->f_path.mnt);
return 0;
}
@@ -730,8 +731,10 @@ static long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
return ret;
src_file = fget(srcfd);
- if (!src_file)
- return -EBADF;
+ if (!src_file) {
+ ret = -EBADF;
+ goto out_drop_write;
+ }
src = src_file->f_dentry->d_inode;
ret = -EINVAL;
@@ -982,6 +985,8 @@ out_unlock:
btrfs_free_path(path);
out_fput:
fput(src_file);
+out_drop_write:
+ mnt_drop_write(file->f_path.mnt);
return ret;
}