]> git.kernelconcepts.de Git - karo-tx-linux.git/blobdiff - fs/btrfs/ioctl.c
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mason/linux...
[karo-tx-linux.git] / fs / btrfs / ioctl.c
index 05446f77f99ba8218bd0a5ea2bf03fcdb3f73908..d8b54715c2deb655508229a7f4120e1141c8daae 100644 (file)
@@ -206,7 +206,7 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
                }
        }
 
-       ret = mnt_want_write(file->f_path.mnt);
+       ret = mnt_want_write_file(file);
        if (ret)
                goto out_unlock;
 
@@ -271,7 +271,7 @@ static int btrfs_ioctl_setflags(struct file *file, void __user *arg)
                inode->i_flags = i_oldflags;
        }
 
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
  out_unlock:
        mutex_unlock(&inode->i_mutex);
        return ret;
@@ -286,14 +286,13 @@ static int btrfs_ioctl_getversion(struct file *file, int __user *arg)
 
 static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
 {
-       struct btrfs_root *root = fdentry(file)->d_sb->s_fs_info;
-       struct btrfs_fs_info *fs_info = root->fs_info;
+       struct btrfs_fs_info *fs_info = btrfs_sb(fdentry(file)->d_sb);
        struct btrfs_device *device;
        struct request_queue *q;
        struct fstrim_range range;
        u64 minlen = ULLONG_MAX;
        u64 num_devices = 0;
-       u64 total_bytes = btrfs_super_total_bytes(root->fs_info->super_copy);
+       u64 total_bytes = btrfs_super_total_bytes(fs_info->super_copy);
        int ret;
 
        if (!capable(CAP_SYS_ADMIN))
@@ -322,7 +321,7 @@ static noinline int btrfs_ioctl_fitrim(struct file *file, void __user *arg)
 
        range.len = min(range.len, total_bytes - range.start);
        range.minlen = max(range.minlen, minlen);
-       ret = btrfs_trim_fs(root, &range);
+       ret = btrfs_trim_fs(fs_info->tree_root, &range);
        if (ret < 0)
                return ret;
 
@@ -1883,7 +1882,7 @@ static noinline int btrfs_ioctl_snap_destroy(struct file *file,
                goto out;
        }
 
-       err = mnt_want_write(file->f_path.mnt);
+       err = mnt_want_write_file(file);
        if (err)
                goto out;
 
@@ -1999,7 +1998,7 @@ out_dput:
        dput(dentry);
 out_unlock_dir:
        mutex_unlock(&dir->i_mutex);
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
 out:
        kfree(vol_args);
        return err;
@@ -2015,7 +2014,7 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp)
        if (btrfs_root_readonly(root))
                return -EROFS;
 
-       ret = mnt_want_write(file->f_path.mnt);
+       ret = mnt_want_write_file(file);
        if (ret)
                return ret;
 
@@ -2068,7 +2067,7 @@ static int btrfs_ioctl_defrag(struct file *file, void __user *argp)
                ret = -EINVAL;
        }
 out:
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
        return ret;
 }
 
@@ -2245,7 +2244,7 @@ static noinline long btrfs_ioctl_clone(struct file *file, unsigned long srcfd,
        if (btrfs_root_readonly(root))
                return -EROFS;
 
-       ret = mnt_want_write(file->f_path.mnt);
+       ret = mnt_want_write_file(file);
        if (ret)
                return ret;
 
@@ -2561,7 +2560,7 @@ out_unlock:
 out_fput:
        fput(src_file);
 out_drop_write:
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
        return ret;
 }
 
@@ -2600,7 +2599,7 @@ static long btrfs_ioctl_trans_start(struct file *file)
        if (btrfs_root_readonly(root))
                goto out;
 
-       ret = mnt_want_write(file->f_path.mnt);
+       ret = mnt_want_write_file(file);
        if (ret)
                goto out;
 
@@ -2616,7 +2615,7 @@ static long btrfs_ioctl_trans_start(struct file *file)
 
 out_drop:
        atomic_dec(&root->fs_info->open_ioctl_trans);
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
 out:
        return ret;
 }
@@ -2851,7 +2850,7 @@ long btrfs_ioctl_trans_end(struct file *file)
 
        atomic_dec(&root->fs_info->open_ioctl_trans);
 
-       mnt_drop_write(file->f_path.mnt);
+       mnt_drop_write_file(file);
        return 0;
 }