Commit cf809556 authored by Trond Myklebust's avatar Trond Myklebust

NFS: Ensure that nfs_link() instantiates the dentry correctly

Signed-off-by: default avatarTrond Myklebust <Trond.Myklebust@netapp.com>
parent 516a6af6
...@@ -1432,17 +1432,14 @@ nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry) ...@@ -1432,17 +1432,14 @@ nfs_link(struct dentry *old_dentry, struct inode *dir, struct dentry *dentry)
old_dentry->d_parent->d_name.name, old_dentry->d_name.name, old_dentry->d_parent->d_name.name, old_dentry->d_name.name,
dentry->d_parent->d_name.name, dentry->d_name.name); dentry->d_parent->d_name.name, dentry->d_name.name);
/*
* Drop the dentry in advance to force a new lookup.
* Since nfs_proc_link doesn't return a file handle,
* we can't use the existing dentry.
*/
lock_kernel(); lock_kernel();
d_drop(dentry);
nfs_begin_data_update(dir); nfs_begin_data_update(dir);
nfs_begin_data_update(inode); nfs_begin_data_update(inode);
error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name); error = NFS_PROTO(dir)->link(inode, dir, &dentry->d_name);
if (error == 0) {
atomic_inc(&inode->i_count);
d_instantiate(dentry, inode);
}
nfs_end_data_update(inode); nfs_end_data_update(inode);
nfs_end_data_update(dir); nfs_end_data_update(dir);
unlock_kernel(); unlock_kernel();
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment