diff options
| author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2025-11-19 16:39:50 +0300 |
|---|---|---|
| committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2025-11-19 16:46:21 +0300 |
| commit | 518c32a1bc4f8df1a8442ee8cdfea3e2fcff20a0 (patch) | |
| tree | aa4ef50511e515eb830df944277b5fa96c67f8b0 | |
| parent | 9bd545539b233725a3416801f7c374bff0327d6e (diff) | |
| download | linux-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.c | 2 |
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: |
