Commit 5776a9cd authored by Trond Myklebust's avatar Trond Myklebust
Browse files

NFS: Fix a race in nfs_call_unlink()



We should check that the filehandles match before transferring the
sillyrename data to the newly looked-up dentry in case the name was
reused on the server.

Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 35e3b6ae
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -139,6 +139,7 @@ static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nf
		 */
		spin_lock(&alias->d_lock);
		if (d_really_is_positive(alias) &&
		    !nfs_compare_fh(NFS_FH(inode), NFS_FH(d_inode(alias))) &&
		    !(alias->d_flags & DCACHE_NFSFS_RENAMED)) {
			devname_garbage = alias->d_fsdata;
			alias->d_fsdata = data;