Btrfs: Add missing mnt_drop_write in ioctl.c
authorYan Zheng <zheng.yan@oracle.com>
Fri, 19 Dec 2008 15:58:39 +0000 (10:58 -0500)
committerChris Mason <chris.mason@oracle.com>
Fri, 19 Dec 2008 15:58:39 +0000 (10:58 -0500)
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>
fs/btrfs/ioctl.c

index 5d67858ce993ca37e5627641244f212d2a820f5c..ab429fe0fa0f5fbe6fef0f586dc9b7bc18e09c1d 100644 (file)
@@ -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;
 }