switch a bunch of places to mnt_want_write_file()
authorAl Viro <viro@zeniv.linux.org.uk>
Wed, 23 Nov 2011 16:57:51 +0000 (11:57 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Wed, 4 Jan 2012 03:52:35 +0000 (22:52 -0500)
it's both faster (in case when file has been opened for write) and cleaner.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
16 files changed:
fs/btrfs/ioctl.c
fs/ext2/ioctl.c
fs/ext3/ioctl.c
fs/ext4/ioctl.c
fs/fat/file.c
fs/gfs2/file.c
fs/hfsplus/ioctl.c
fs/jfs/ioctl.c
fs/nfsd/nfs4recover.c
fs/nilfs2/ioctl.c
fs/ocfs2/ioctl.c
fs/ocfs2/move_extents.c
fs/reiserfs/ioctl.c
fs/ubifs/ioctl.c
fs/xfs/xfs_ioctl.c
fs/xfs/xfs_ioctl32.c

index c04f02c7d5bbea215557a1d8ae2fc8ccce6e5862..20dd8f3b6c7204e432a91463f8c175620acff084 100644 (file)
@@ -201,7 +201,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;
 
@@ -1855,7 +1855,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;
 
@@ -1987,7 +1987,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;
 
@@ -2195,7 +2195,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;
 
@@ -2549,7 +2549,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;
 
index f81e250ac5c4d62d7616a8f724d30ae8ae9265e7..61a3f9661728730f5ed91c89e5f98b3dfb72ffdd 100644 (file)
@@ -35,7 +35,7 @@ long ext2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
        case EXT2_IOC_SETFLAGS: {
                unsigned int oldflags;
 
-               ret = mnt_want_write(filp->f_path.mnt);
+               ret = mnt_want_write_file(filp);
                if (ret)
                        return ret;
 
@@ -91,7 +91,7 @@ setflags_out:
        case EXT2_IOC_SETVERSION:
                if (!inode_owner_or_capable(inode))
                        return -EPERM;
-               ret = mnt_want_write(filp->f_path.mnt);
+               ret = mnt_want_write_file(filp);
                if (ret)
                        return ret;
                if (get_user(inode->i_generation, (int __user *) arg)) {
@@ -121,7 +121,7 @@ setflags_out:
                if (get_user(rsv_window_size, (int __user *)arg))
                        return -EFAULT;
 
-               ret = mnt_want_write(filp->f_path.mnt);
+               ret = mnt_want_write_file(filp);
                if (ret)
                        return ret;
 
index ba1b54e23cae14fd08b630db914b8f639908406d..a02863a080d339529ec4cffa4098cade1afc7bfd 100644 (file)
@@ -44,7 +44,7 @@ long ext3_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                if (get_user(flags, (int __user *) arg))
                        return -EFAULT;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -126,7 +126,7 @@ flags_out:
                if (!inode_owner_or_capable(inode))
                        return -EPERM;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
                if (get_user(generation, (int __user *) arg)) {
@@ -164,7 +164,7 @@ setversion_out:
                if (!test_opt(inode->i_sb, RESERVATION) ||!S_ISREG(inode->i_mode))
                        return -ENOTTY;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -206,7 +206,7 @@ setrsvsz_out:
                if (!capable(CAP_SYS_RESOURCE))
                        return -EPERM;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -232,7 +232,7 @@ group_extend_out:
                if (!capable(CAP_SYS_RESOURCE))
                        return -EPERM;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
index a56796814d6ab1a564af494e23b57871f2121692..9a49760b554d7645e4d630788677a9dbfc4d31b7 100644 (file)
@@ -45,7 +45,7 @@ long ext4_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                if (get_user(flags, (int __user *) arg))
                        return -EFAULT;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -150,7 +150,7 @@ flags_out:
                if (!inode_owner_or_capable(inode))
                        return -EPERM;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
                if (get_user(generation, (int __user *) arg)) {
@@ -192,7 +192,7 @@ setversion_out:
                        return -EOPNOTSUPP;
                }
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -240,7 +240,7 @@ setversion_out:
                        return -EOPNOTSUPP;
                }
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        goto mext_out;
 
@@ -277,7 +277,7 @@ mext_out:
                        return -EOPNOTSUPP;
                }
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
@@ -301,7 +301,7 @@ mext_out:
                if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
                /*
@@ -323,7 +323,7 @@ mext_out:
                if (!inode_owner_or_capable(inode))
                        return -EACCES;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
                err = ext4_alloc_da_blocks(inode);
index c118acf16e4310530e39abf115fd003813cdea03..50746a1a07891ecdcbaa4e9abfa566d6451bc65f 100644 (file)
@@ -44,7 +44,7 @@ static int fat_ioctl_set_attributes(struct file *file, u32 __user *user_attr)
                goto out;
 
        mutex_lock(&inode->i_mutex);
-       err = mnt_want_write(file->f_path.mnt);
+       err = mnt_want_write_file(file);
        if (err)
                goto out_unlock_inode;
 
index ce36a56dfeac47d9cef9f0fc3a6f1107883b2a26..28fc6e3855f3585b3bf90ba78f9af4953fbc9add 100644 (file)
@@ -223,7 +223,7 @@ static int do_gfs2_set_flags(struct file *filp, u32 reqflags, u32 mask)
        int error;
        u32 new_flags, flags;
 
-       error = mnt_want_write(filp->f_path.mnt);
+       error = mnt_want_write_file(filp);
        if (error)
                return error;
 
index fbaa6690c8e0ecd0ecbd49c47b6c182262301fea..31d3fe576429b2692e71c9a6d867329197b29eac 100644 (file)
@@ -43,7 +43,7 @@ static int hfsplus_ioctl_setflags(struct file *file, int __user *user_flags)
        unsigned int flags;
        int err = 0;
 
-       err = mnt_want_write(file->f_path.mnt);
+       err = mnt_want_write_file(file);
        if (err)
                goto out;
 
index 6f98a1866776842c6ff4ab3d217129eec975b192..73d9eaa91c0590373322654afb5a27b40da8387b 100644 (file)
@@ -68,7 +68,7 @@ long jfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                unsigned int oldflags;
                int err;
 
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        return err;
 
index ed083b9a731b630b02ddaac5957a6a558cead62c..a9aa2f161262abf780f51dcdd67bd396d1273b85 100644 (file)
@@ -147,7 +147,7 @@ nfsd4_create_clid_dir(struct nfs4_client *clp)
        status = -EEXIST;
        if (dentry->d_inode)
                goto out_put;
-       status = mnt_want_write(rec_file->f_path.mnt);
+       status = mnt_want_write_file(rec_file);
        if (status)
                goto out_put;
        status = vfs_mkdir(dir->d_inode, dentry, S_IRWXU);
@@ -268,7 +268,7 @@ nfsd4_remove_clid_dir(struct nfs4_client *clp)
        if (!rec_file || !clp->cl_firststate)
                return;
 
-       status = mnt_want_write(rec_file->f_path.mnt);
+       status = mnt_want_write_file(rec_file);
        if (status)
                goto out;
        clp->cl_firststate = 0;
@@ -311,7 +311,7 @@ nfsd4_recdir_purge_old(void) {
 
        if (!rec_file)
                return;
-       status = mnt_want_write(rec_file->f_path.mnt);
+       status = mnt_want_write_file(rec_file);
        if (status)
                goto out;
        status = nfsd4_list_rec_dir(purge_old);
index ac258beeda3c4e3e9a3a36a375619838c8c7a350..b7697d1ccd613774f4a6cd3dc790491ff20ad53e 100644 (file)
@@ -27,7 +27,7 @@
 #include <linux/uaccess.h>     /* copy_from_user(), copy_to_user() */
 #include <linux/vmalloc.h>
 #include <linux/compat.h>      /* compat_ptr() */
-#include <linux/mount.h>       /* mnt_want_write(), mnt_drop_write() */
+#include <linux/mount.h>       /* mnt_want_write_file(), mnt_drop_write() */
 #include <linux/buffer_head.h>
 #include <linux/nilfs2_fs.h>
 #include "nilfs.h"
@@ -119,7 +119,7 @@ static int nilfs_ioctl_setflags(struct inode *inode, struct file *filp,
        if (get_user(flags, (int __user *)argp))
                return -EFAULT;
 
-       ret = mnt_want_write(filp->f_path.mnt);
+       ret = mnt_want_write_file(filp);
        if (ret)
                return ret;
 
@@ -174,7 +174,7 @@ static int nilfs_ioctl_change_cpmode(struct inode *inode, struct file *filp,
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
-       ret = mnt_want_write(filp->f_path.mnt);
+       ret = mnt_want_write_file(filp);
        if (ret)
                return ret;
 
@@ -210,7 +210,7 @@ nilfs_ioctl_delete_checkpoint(struct inode *inode, struct file *filp,
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
-       ret = mnt_want_write(filp->f_path.mnt);
+       ret = mnt_want_write_file(filp);
        if (ret)
                return ret;
 
@@ -591,7 +591,7 @@ static int nilfs_ioctl_clean_segments(struct inode *inode, struct file *filp,
        if (!capable(CAP_SYS_ADMIN))
                return -EPERM;
 
-       ret = mnt_want_write(filp->f_path.mnt);
+       ret = mnt_want_write_file(filp);
        if (ret)
                return ret;
 
@@ -710,7 +710,7 @@ static int nilfs_ioctl_resize(struct inode *inode, struct file *filp,
        if (!capable(CAP_SYS_ADMIN))
                goto out;
 
-       ret = mnt_want_write(filp->f_path.mnt);
+       ret = mnt_want_write_file(filp);
        if (ret)
                goto out;
 
index 726ff265b296bc3365cfe46e94588c1ee4f6ed6a..892ace253f9725bf59e9d11742284157a5928ecc 100644 (file)
@@ -906,7 +906,7 @@ long ocfs2_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                if (get_user(flags, (int __user *) arg))
                        return -EFAULT;
 
-               status = mnt_want_write(filp->f_path.mnt);
+               status = mnt_want_write_file(filp);
                if (status)
                        return status;
                status = ocfs2_set_inode_attr(inode, flags,
index 184c76b8c293907368f325316da04f57801d87eb..1d3bf83f8b8528cc22143399d17eafd58db845fd 100644 (file)
@@ -1059,7 +1059,7 @@ int ocfs2_ioctl_move_extents(struct file *filp, void __user *argp)
        struct ocfs2_move_extents range;
        struct ocfs2_move_extents_context *context = NULL;
 
-       status = mnt_want_write(filp->f_path.mnt);
+       status = mnt_want_write_file(filp);
        if (status)
                return status;
 
index 4e153051bc75bf691f2352c8bf3c177613195f40..0b94d7b2b11f0be6565811ba360461eff84441c7 100644 (file)
@@ -55,7 +55,7 @@ long reiserfs_ioctl(struct file *filp, unsigned int cmd, unsigned long arg)
                                break;
                        }
 
-                       err = mnt_want_write(filp->f_path.mnt);
+                       err = mnt_want_write_file(filp);
                        if (err)
                                break;
 
@@ -107,7 +107,7 @@ setflags_out:
                        err = -EPERM;
                        break;
                }
-               err = mnt_want_write(filp->f_path.mnt);
+               err = mnt_want_write_file(filp);
                if (err)
                        break;
                if (get_user(inode->i_generation, (int __user *)arg)) {
index 548acf494afd1720a4181e4dbd6861970b24ab34..e52c84598feb3662734fad100e376b345d92c289 100644 (file)
@@ -173,7 +173,7 @@ long ubifs_ioctl(struct file *file, unsigned int cmd, unsigned long arg)
                 * Make sure the file-system is read-write and make sure it
                 * will not become read-only while we are changing the flags.
                 */
-               err = mnt_want_write(file->f_path.mnt);
+               err = mnt_want_write_file(file);
                if (err)
                        return err;
                dbg_gen("set flags: %#x, i_flags %#x", flags, inode->i_flags);
index d99a905189091c9b74fa23f6483d8a2713ae7c4a..b436e17c753e0d65b125c0cc1cbcaeb2ced2746a 100644 (file)
@@ -559,7 +559,7 @@ xfs_attrmulti_by_handle(
                                        ops[i].am_flags);
                        break;
                case ATTR_OP_SET:
-                       ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
+                       ops[i].am_error = mnt_want_write_file(parfilp);
                        if (ops[i].am_error)
                                break;
                        ops[i].am_error = xfs_attrmulti_attr_set(
@@ -569,7 +569,7 @@ xfs_attrmulti_by_handle(
                        mnt_drop_write(parfilp->f_path.mnt);
                        break;
                case ATTR_OP_REMOVE:
-                       ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
+                       ops[i].am_error = mnt_want_write_file(parfilp);
                        if (ops[i].am_error)
                                break;
                        ops[i].am_error = xfs_attrmulti_attr_remove(
index 54e623bfbb85e9642b7556926aea25e71fed519b..dd4ba1d4c5826e02a57876d3ab40c0f93bb700a1 100644 (file)
@@ -454,7 +454,7 @@ xfs_compat_attrmulti_by_handle(
                                        &ops[i].am_length, ops[i].am_flags);
                        break;
                case ATTR_OP_SET:
-                       ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
+                       ops[i].am_error = mnt_want_write_file(parfilp);
                        if (ops[i].am_error)
                                break;
                        ops[i].am_error = xfs_attrmulti_attr_set(
@@ -464,7 +464,7 @@ xfs_compat_attrmulti_by_handle(
                        mnt_drop_write(parfilp->f_path.mnt);
                        break;
                case ATTR_OP_REMOVE:
-                       ops[i].am_error = mnt_want_write(parfilp->f_path.mnt);
+                       ops[i].am_error = mnt_want_write_file(parfilp);
                        if (ops[i].am_error)
                                break;
                        ops[i].am_error = xfs_attrmulti_attr_remove(