[PATCH 16/28] sys_linkat(): elevate write count around vfs_link()

Dave Hansen
2006-08-02T00:01:16Z

lxc-dave/fs/namei.c | 5 +++++
1 files changed, 5 insertions(+)

diff -puN fs/namei.c~C-elevate-writers-vfs_link-part1 fs/namei.c
--- lxc/fs/namei.c~C-elevate-writers-vfs_link-part1 2006-08-01 16:35:24.000000000 -0700
+++ lxc-dave/fs/namei.c 2006-08-01 16:35:25.000000000 -0700
@@ -2326,7 +2326,12 @@ asmlinkage long sys_linkat(int olddfd, c
error = PTR_ERR(new_dentry);
if (IS_ERR(new_dentry))
goto out_unlock;
+ error = mnt_want_write(nd.mnt);
+ if (error)
+ goto out_dput;
error = vfs_link(old_nd.dentry, nd.dentry->d_inode, new_dentry);
+ mnt_drop_write(nd.mnt);
+out_dput:
dput(new_dentry);
out_unlock:
mutex_unlock(&nd.dentry->d_inode->i_mutex);
_