summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2018-05-10 10:13:09 -0400
committerTrond Myklebust <trond.myklebust@hammerspace.com>2018-05-28 13:29:19 -0400
commit73dd684a4dcee8c55882a01aeb8b5cbf203de955 (patch)
treeb20c52f75f231e44c7a6f1c016b94dcb3d450524
parent479219218fbe0a74bc36310fefc5ac6439c7cece (diff)
downloadop-kernel-dev-73dd684a4dcee8c55882a01aeb8b5cbf203de955.zip
op-kernel-dev-73dd684a4dcee8c55882a01aeb8b5cbf203de955.tar.gz
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>
-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 4a73bd8..9dde883 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) {
OpenPOWER on IntegriCloud