diff options
author | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-16 17:39:58 -0500 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2016-12-19 17:29:32 -0500 |
commit | 58ff41842c7b8b8a79752e3d040188ebddb95194 (patch) | |
tree | 5c19ed36f6df9d051867ba19ec90ca790335f4c2 | |
parent | 0bc2c9b4dca9668a236fde48ebb15e5f0735cbff (diff) |
NFS: Don't revalidate the file on close if we hold a delegation
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>
-rw-r--r-- | fs/nfs/inode.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/nfs/inode.c b/fs/nfs/inode.c index 7de345fd8e1e..2fc237cd338e 100644 --- a/fs/nfs/inode.c +++ b/fs/nfs/inode.c | |||
@@ -795,6 +795,8 @@ void nfs_close_context(struct nfs_open_context *ctx, int is_sync) | |||
795 | if (!is_sync) | 795 | if (!is_sync) |
796 | return; | 796 | return; |
797 | inode = d_inode(ctx->dentry); | 797 | inode = d_inode(ctx->dentry); |
798 | if (NFS_PROTO(inode)->have_delegation(inode, FMODE_READ)) | ||
799 | return; | ||
798 | nfsi = NFS_I(inode); | 800 | nfsi = NFS_I(inode); |
799 | if (inode->i_mapping->nrpages == 0) | 801 | if (inode->i_mapping->nrpages == 0) |
800 | return; | 802 | return; |