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 | |
parent | 479219218fbe0a74bc36310fefc5ac6439c7cece (diff) | |
download | op-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.c | 2 |
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) { |