NFS: Don't revalidate the file on close if we hold a delegation
authorTrond Myklebust <trond.myklebust@primarydata.com>
Fri, 16 Dec 2016 22:39:58 +0000 (17:39 -0500)
committerTrond Myklebust <trond.myklebust@primarydata.com>
Mon, 19 Dec 2016 22:29:32 +0000 (17:29 -0500)
If we're holding a delegation, we can skip sending the close-to-open
GETATTR until we're returning that delegation.

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

index 7de345fd8e1eafba543313854831ca9e1aa9034a..2fc237cd338e7ac61dcca3f4ca102029a83a2bf3 100644 (file)
@@ -795,6 +795,8 @@ void nfs_close_context(struct nfs_open_context *ctx, int is_sync)
        if (!is_sync)
                return;
        inode = d_inode(ctx->dentry);
+       if (NFS_PROTO(inode)->have_delegation(inode, FMODE_READ))
+               return;
        nfsi = NFS_I(inode);
        if (inode->i_mapping->nrpages == 0)
                return;