aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfs/delegation.h
diff options
context:
space:
mode:
authorTrond Myklebust <trondmy@gmail.com>2019-10-31 18:40:32 -0400
committerAnna Schumaker <Anna.Schumaker@Netapp.com>2019-11-01 10:59:26 -0400
commitbe3df3dd4c70ee020587a943a31b98a0fb4b6424 (patch)
treefc9a15033a2e3285ca917bd41a01d0503961e89d /fs/nfs/delegation.h
parentSUNRPC: Destroy the back channel when we destroy the host transport (diff)
downloadlinux-dev-be3df3dd4c70ee020587a943a31b98a0fb4b6424.tar.xz
linux-dev-be3df3dd4c70ee020587a943a31b98a0fb4b6424.zip
NFSv4: Don't allow a cached open with a revoked delegation
If the delegation is marked as being revoked, we must not use it for cached opens. Fixes: 869f9dfa4d6d ("NFSv4: Fix races between nfs_remove_bad_delegation() and delegation return") Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/delegation.h')
-rw-r--r--fs/nfs/delegation.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/fs/nfs/delegation.h b/fs/nfs/delegation.h
index 9eb87ae4c982..8b14d441e699 100644
--- a/fs/nfs/delegation.h
+++ b/fs/nfs/delegation.h
@@ -68,6 +68,7 @@ int nfs4_lock_delegation_recall(struct file_lock *fl, struct nfs4_state *state,
bool nfs4_copy_delegation_stateid(struct inode *inode, fmode_t flags, nfs4_stateid *dst, const struct cred **cred);
bool nfs4_refresh_delegation_stateid(nfs4_stateid *dst, struct inode *inode);
+struct nfs_delegation *nfs4_get_valid_delegation(const struct inode *inode);
void nfs_mark_delegation_referenced(struct nfs_delegation *delegation);
int nfs4_have_delegation(struct inode *inode, fmode_t flags);
int nfs4_check_delegation(struct inode *inode, fmode_t flags);