NFS: More excessive attribute revalidation in nfs_execute_ok()
authorTrond Myklebust <trond.myklebust@hammerspace.com>
Tue, 24 Jul 2018 18:27:11 +0000 (14:27 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Thu, 26 Jul 2018 20:25:25 +0000 (16:25 -0400)
execute_ok() will only check the mode bits if the object is not a
directory, so we don't need to revalidate the attributes in that case.

Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/dir.c

index e7bc68fcbdf4d7750013cf1b62b32770d860442c..f0e39583af7e360759680d9dacf2634d0bc237c5 100644 (file)
@@ -2500,6 +2500,8 @@ static int nfs_execute_ok(struct inode *inode, int mask)
        struct nfs_server *server = NFS_SERVER(inode);
        int ret = 0;
 
+       if (S_ISDIR(inode->i_mode))
+               return 0;
        if (nfs_check_cache_invalid(inode, NFS_INO_INVALID_OTHER)) {
                if (mask & MAY_NOT_BLOCK)
                        return -ECHILD;