From: Trond Myklebust Date: Wed, 16 Nov 2022 16:11:53 +0000 (-0500) Subject: NFS: Fix a race in nfs_call_unlink() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=5776a9cd2a66cdc037c8e6ee34cde40ee768893d;p=linux.git 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: Trond Myklebust --- diff --git a/fs/nfs/unlink.c b/fs/nfs/unlink.c index 9697cd5d2561c..150a953a8be94 100644 --- a/fs/nfs/unlink.c +++ b/fs/nfs/unlink.c @@ -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;