summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2025-11-19 16:39:50 +0300
committerTrond Myklebust <trond.myklebust@hammerspace.com>2025-11-19 16:46:21 +0300
commit518c32a1bc4f8df1a8442ee8cdfea3e2fcff20a0 (patch)
treeaa4ef50511e515eb830df944277b5fa96c67f8b0
parent9bd545539b233725a3416801f7c374bff0327d6e (diff)
downloadlinux-518c32a1bc4f8df1a8442ee8cdfea3e2fcff20a0.tar.xz
NFS: Initialise verifiers for visible dentries in nfs_atomic_open()
Ensure that the verifiers are initialised before calling d_splice_alias() in nfs_atomic_open(). Reported-by: Michael Stoler <michael.stoler@vastdata.com> Fixes: 809fd143de88 ("NFSv4: Ensure nfs_atomic_open set the dentry verifier on ENOENT") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
-rw-r--r--fs/nfs/dir.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/fs/nfs/dir.c b/fs/nfs/dir.c
index 2eead7e85be5..3b8250ee0141 100644
--- a/fs/nfs/dir.c
+++ b/fs/nfs/dir.c
@@ -2144,12 +2144,12 @@ int nfs_atomic_open(struct inode *dir, struct dentry *dentry,
d_drop(dentry);
switch (err) {
case -ENOENT:
- d_splice_alias(NULL, dentry);
if (nfs_server_capable(dir, NFS_CAP_CASE_INSENSITIVE))
dir_verifier = inode_peek_iversion_raw(dir);
else
dir_verifier = nfs_save_change_attribute(dir);
nfs_set_verifier(dentry, dir_verifier);
+ d_splice_alias(NULL, dentry);
break;
case -EISDIR:
case -ENOTDIR: