diff options
Diffstat (limited to 'fs/nfs')
-rw-r--r-- | fs/nfs/nfs4_fs.h | 1 | ||||
-rw-r--r-- | fs/nfs/nfs4proc.c | 2 | ||||
-rw-r--r-- | fs/nfs/nfs4state.c | 4 |
3 files changed, 6 insertions, 1 deletions
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index ae25cc21fe70..095bf4690e84 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -182,6 +182,7 @@ struct nfs4_state_recovery_ops { | |||
182 | 182 | ||
183 | struct nfs4_state_maintenance_ops { | 183 | struct nfs4_state_maintenance_ops { |
184 | int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *); | 184 | int (*sched_state_renewal)(struct nfs_client *, struct rpc_cred *); |
185 | int (*renew_lease)(struct nfs_client *, struct rpc_cred *); | ||
185 | }; | 186 | }; |
186 | 187 | ||
187 | extern const struct dentry_operations nfs4_dentry_operations; | 188 | extern const struct dentry_operations nfs4_dentry_operations; |
diff --git a/fs/nfs/nfs4proc.c b/fs/nfs/nfs4proc.c index 101ba6aed101..da481bda44f7 100644 --- a/fs/nfs/nfs4proc.c +++ b/fs/nfs/nfs4proc.c | |||
@@ -4795,11 +4795,13 @@ struct nfs4_state_recovery_ops nfs4_nograce_recovery_ops = { | |||
4795 | 4795 | ||
4796 | struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = { | 4796 | struct nfs4_state_maintenance_ops nfs40_state_renewal_ops = { |
4797 | .sched_state_renewal = nfs4_proc_async_renew, | 4797 | .sched_state_renewal = nfs4_proc_async_renew, |
4798 | .renew_lease = nfs4_proc_renew, | ||
4798 | }; | 4799 | }; |
4799 | 4800 | ||
4800 | #if defined(CONFIG_NFS_V4_1) | 4801 | #if defined(CONFIG_NFS_V4_1) |
4801 | struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = { | 4802 | struct nfs4_state_maintenance_ops nfs41_state_renewal_ops = { |
4802 | .sched_state_renewal = nfs41_proc_async_sequence, | 4803 | .sched_state_renewal = nfs41_proc_async_sequence, |
4804 | .renew_lease = nfs4_proc_sequence, | ||
4803 | }; | 4805 | }; |
4804 | #endif | 4806 | #endif |
4805 | 4807 | ||
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 8b7f007adc42..dc5599c7f4d9 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1083,6 +1083,8 @@ restart: | |||
1083 | static int nfs4_check_lease(struct nfs_client *clp) | 1083 | static int nfs4_check_lease(struct nfs_client *clp) |
1084 | { | 1084 | { |
1085 | struct rpc_cred *cred; | 1085 | struct rpc_cred *cred; |
1086 | struct nfs4_state_maintenance_ops *ops = | ||
1087 | nfs4_state_renewal_ops[clp->cl_minorversion]; | ||
1086 | int status = -NFS4ERR_EXPIRED; | 1088 | int status = -NFS4ERR_EXPIRED; |
1087 | 1089 | ||
1088 | /* Is the client already known to have an expired lease? */ | 1090 | /* Is the client already known to have an expired lease? */ |
@@ -1094,7 +1096,7 @@ static int nfs4_check_lease(struct nfs_client *clp) | |||
1094 | if (cred == NULL) | 1096 | if (cred == NULL) |
1095 | goto out; | 1097 | goto out; |
1096 | } | 1098 | } |
1097 | status = nfs4_proc_renew(clp, cred); | 1099 | status = ops->renew_lease(clp, cred); |
1098 | put_rpccred(cred); | 1100 | put_rpccred(cred); |
1099 | out: | 1101 | out: |
1100 | nfs4_recovery_handle_error(clp, status); | 1102 | nfs4_recovery_handle_error(clp, status); |