diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-08-24 15:07:37 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2011-08-24 15:07:37 -0400 |
commit | 2f60ea6b8ceda61ae08bef71a652eac36ec193b3 (patch) | |
tree | f950b29615be254fb7f90a607caf3f307518a34b /fs/nfs/nfs4_fs.h | |
parent | 8534d4ec055d854be6c94e8e5654fa87678ea5f7 (diff) |
NFSv4: The NFSv4.0 client must send RENEW calls if it holds a delegation
RFC3530 states that if the client holds a delegation, then it is obliged
to continue to send RENEW calls once every lease period in order to allow
the server to return NFS4ERR_CB_PATH_DOWN if the callback path is
unreachable.
This is not required for NFSv4.1, since the server can at any time set
the SEQ4_STATUS_CB_PATH_DOWN_SESSION in any SEQUENCE operation.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4_fs.h')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index 58adfb6e3657..e1b660728675 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -56,6 +56,9 @@ enum nfs4_session_state { | |||
56 | NFS4_SESSION_DRAINING, | 56 | NFS4_SESSION_DRAINING, |
57 | }; | 57 | }; |
58 | 58 | ||
59 | #define NFS4_RENEW_TIMEOUT 0x01 | ||
60 | #define NFS4_RENEW_DELEGATION_CB 0x02 | ||
61 | |||
59 | struct nfs4_minor_version_ops { | 62 | struct nfs4_minor_version_ops { |
60 | u32 minor_version; | 63 | u32 minor_version; |
61 | 64 | ||
@@ -225,7 +228,7 @@ struct nfs4_state_recovery_ops { | |||
225 | }; | 228 | }; |
226 | 229 | ||
227 | struct nfs4_state_maintenance_ops { | 230 | struct nfs4_state_maintenance_ops { |
228 | int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *); | 231 | int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *, unsigned); |
229 | struct rpc_cred * (*get_state_renewal_cred_locked)(struct nfs_client *); | 232 | struct rpc_cred * (*get_state_renewal_cred_locked)(struct nfs_client *); |
230 | int (*renew_lease)(struct nfs_client *, struct rpc_cred *); | 233 | int (*renew_lease)(struct nfs_client *, struct rpc_cred *); |
231 | }; | 234 | }; |