From 85169042a0c19adbb0168980835ebfb4fc298c79 Mon Sep 17 00:00:00 2001 From: Erez Zadok Date: Tue, 4 Jun 2013 23:19:30 -0400 Subject: [PATCH] Wrapfs: no need to call mnt_want_write any longer Apparently this is now being done by the VFS. Signed-off-by: Erez Zadok --- fs/wrapfs/inode.c | 50 +---------------------------------------------- 1 file changed, 1 insertion(+), 49 deletions(-) diff --git a/fs/wrapfs/inode.c b/fs/wrapfs/inode.c index 32fe447240c3..d7fe1451efd3 100644 --- a/fs/wrapfs/inode.c +++ b/fs/wrapfs/inode.c @@ -23,10 +23,6 @@ static int wrapfs_create(struct inode *dir, struct dentry *dentry, lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; - err = vfs_create(lower_parent_dentry->d_inode, lower_dentry, mode, want_excl); if (err) @@ -38,8 +34,6 @@ static int wrapfs_create(struct inode *dir, struct dentry *dentry, fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err; @@ -62,10 +56,6 @@ static int wrapfs_link(struct dentry *old_dentry, struct inode *dir, lower_new_dentry = lower_new_path.dentry; lower_dir_dentry = lock_parent(lower_new_dentry); - err = mnt_want_write(lower_new_path.mnt); - if (err) - goto out_unlock; - err = vfs_link(lower_old_dentry, lower_dir_dentry->d_inode, lower_new_dentry); if (err || !lower_new_dentry->d_inode) @@ -80,8 +70,6 @@ static int wrapfs_link(struct dentry *old_dentry, struct inode *dir, wrapfs_lower_inode(old_dentry->d_inode)->i_nlink); i_size_write(new_dentry->d_inode, file_size_save); out: - mnt_drop_write(lower_new_path.mnt); -out_unlock: unlock_dir(lower_dir_dentry); wrapfs_put_lower_path(old_dentry, &lower_old_path); wrapfs_put_lower_path(new_dentry, &lower_new_path); @@ -101,9 +89,6 @@ static int wrapfs_unlink(struct inode *dir, struct dentry *dentry) dget(lower_dentry); lower_dir_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; err = vfs_unlink(lower_dir_inode, lower_dentry); /* @@ -124,8 +109,6 @@ static int wrapfs_unlink(struct inode *dir, struct dentry *dentry) dentry->d_inode->i_ctime = dir->i_ctime; d_drop(dentry); /* this is needed, else LTP fails (VFS won't do it) */ out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_dir_dentry); dput(lower_dentry); wrapfs_put_lower_path(dentry, &lower_path); @@ -144,9 +127,6 @@ static int wrapfs_symlink(struct inode *dir, struct dentry *dentry, lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; err = vfs_symlink(lower_parent_dentry->d_inode, lower_dentry, symname); if (err) goto out; @@ -157,8 +137,6 @@ static int wrapfs_symlink(struct inode *dir, struct dentry *dentry, fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err; @@ -175,9 +153,6 @@ static int wrapfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; err = vfs_mkdir(lower_parent_dentry->d_inode, lower_dentry, mode); if (err) goto out; @@ -192,8 +167,6 @@ static int wrapfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) set_nlink(dir, wrapfs_lower_inode(dir)->i_nlink); out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err; @@ -210,9 +183,6 @@ static int wrapfs_rmdir(struct inode *dir, struct dentry *dentry) lower_dentry = lower_path.dentry; lower_dir_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; err = vfs_rmdir(lower_dir_dentry->d_inode, lower_dentry); if (err) goto out; @@ -225,8 +195,6 @@ static int wrapfs_rmdir(struct inode *dir, struct dentry *dentry) set_nlink(dir, lower_dir_dentry->d_inode->i_nlink); out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_dir_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err; @@ -244,9 +212,6 @@ static int wrapfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, lower_dentry = lower_path.dentry; lower_parent_dentry = lock_parent(lower_dentry); - err = mnt_want_write(lower_path.mnt); - if (err) - goto out_unlock; err = vfs_mknod(lower_parent_dentry->d_inode, lower_dentry, mode, dev); if (err) goto out; @@ -258,8 +223,6 @@ static int wrapfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, fsstack_copy_inode_size(dir, lower_parent_dentry->d_inode); out: - mnt_drop_write(lower_path.mnt); -out_unlock: unlock_dir(lower_parent_dentry); wrapfs_put_lower_path(dentry, &lower_path); return err; @@ -299,17 +262,10 @@ static int wrapfs_rename(struct inode *old_dir, struct dentry *old_dentry, goto out; } - err = mnt_want_write(lower_old_path.mnt); - if (err) - goto out; - err = mnt_want_write(lower_new_path.mnt); - if (err) - goto out_drop_old_write; - err = vfs_rename(lower_old_dir_dentry->d_inode, lower_old_dentry, lower_new_dir_dentry->d_inode, lower_new_dentry); if (err) - goto out_err; + goto out; fsstack_copy_attr_all(new_dir, lower_new_dir_dentry->d_inode); fsstack_copy_inode_size(new_dir, lower_new_dir_dentry->d_inode); @@ -320,10 +276,6 @@ static int wrapfs_rename(struct inode *old_dir, struct dentry *old_dentry, lower_old_dir_dentry->d_inode); } -out_err: - mnt_drop_write(lower_new_path.mnt); -out_drop_old_write: - mnt_drop_write(lower_old_path.mnt); out: unlock_rename(lower_old_dir_dentry, lower_new_dir_dentry); dput(lower_old_dir_dentry); -- 2.34.1