diff options
author | Trond Myklebust <trond.myklebust@hammerspace.com> | 2018-05-10 10:13:09 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@hammerspace.com> | 2018-05-28 13:29:19 -0400 |
commit | 73dd684a4dcee8c55882a01aeb8b5cbf203de955 (patch) | |
tree | b20c52f75f231e44c7a6f1c016b94dcb3d450524 /fs/nfs | |
parent | 479219218fbe0a74bc36310fefc5ac6439c7cece (diff) | |
download | linux-73dd684a4dcee8c55882a01aeb8b5cbf203de955.tar.bz2 |
NFS: If the VFS sets LOOKUP_REVAL then force a lookup of the dentry
If nfs_lookup_revalidate() is called with LOOKUP_REVAL because a
previous path lookup failed, then we ought to force a full lookup
of the component name.
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'fs/nfs')
-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 4a73bd8b4517..9dde88334c9c 100644 --- a/fs/nfs/dir.c +++ b/fs/nfs/dir.c @@ -1118,7 +1118,7 @@ static int nfs_lookup_revalidate(struct dentry *dentry, unsigned int flags) goto out_set_verifier; /* Force a full look up iff the parent directory has changed */ - if (!nfs_is_exclusive_create(dir, flags) && + if (!(flags & (LOOKUP_EXCL | LOOKUP_REVAL)) && nfs_check_verifier(dir, dentry, flags & LOOKUP_RCU)) { error = nfs_lookup_verify_inode(inode, flags); if (error) { |