diff options
-rw-r--r-- | fs/nfs/callback_proc.c | 1 | ||||
-rw-r--r-- | fs/nfs/nfs4_fs.h | 1 | ||||
-rw-r--r-- | fs/nfs/nfs4state.c | 12 |
3 files changed, 14 insertions, 0 deletions
diff --git a/fs/nfs/callback_proc.c b/fs/nfs/callback_proc.c index 8610bd1d136d..f99faad78c72 100644 --- a/fs/nfs/callback_proc.c +++ b/fs/nfs/callback_proc.c | |||
@@ -570,6 +570,7 @@ __be32 nfs4_callback_recallslot(struct cb_recallslotargs *args, void *dummy, | |||
570 | status = htonl(NFS4_OK); | 570 | status = htonl(NFS4_OK); |
571 | 571 | ||
572 | nfs41_set_target_slotid(fc_tbl, args->crsa_target_highest_slotid); | 572 | nfs41_set_target_slotid(fc_tbl, args->crsa_target_highest_slotid); |
573 | nfs41_server_notify_target_slotid_update(cps->clp); | ||
573 | out: | 574 | out: |
574 | dprintk("%s: exit with status = %d\n", __func__, ntohl(status)); | 575 | dprintk("%s: exit with status = %d\n", __func__, ntohl(status)); |
575 | return status; | 576 | return status; |
diff --git a/fs/nfs/nfs4_fs.h b/fs/nfs/nfs4_fs.h index fa1a055a8fe9..0a109ec75e69 100644 --- a/fs/nfs/nfs4_fs.h +++ b/fs/nfs/nfs4_fs.h | |||
@@ -334,6 +334,7 @@ struct rpc_cred *nfs4_get_exchange_id_cred(struct nfs_client *clp); | |||
334 | int nfs41_discover_server_trunking(struct nfs_client *clp, | 334 | int nfs41_discover_server_trunking(struct nfs_client *clp, |
335 | struct nfs_client **, struct rpc_cred *); | 335 | struct nfs_client **, struct rpc_cred *); |
336 | extern void nfs4_schedule_session_recovery(struct nfs4_session *, int); | 336 | extern void nfs4_schedule_session_recovery(struct nfs4_session *, int); |
337 | extern void nfs41_server_notify_target_slotid_update(struct nfs_client *clp); | ||
337 | #else | 338 | #else |
338 | static inline void nfs4_schedule_session_recovery(struct nfs4_session *session, int err) | 339 | static inline void nfs4_schedule_session_recovery(struct nfs4_session *session, int err) |
339 | { | 340 | { |
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 3940cd43fa98..896be2126f7e 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1904,6 +1904,18 @@ void nfs4_schedule_session_recovery(struct nfs4_session *session, int err) | |||
1904 | } | 1904 | } |
1905 | EXPORT_SYMBOL_GPL(nfs4_schedule_session_recovery); | 1905 | EXPORT_SYMBOL_GPL(nfs4_schedule_session_recovery); |
1906 | 1906 | ||
1907 | static void nfs41_ping_server(struct nfs_client *clp) | ||
1908 | { | ||
1909 | /* Use CHECK_LEASE to ping the server with a SEQUENCE */ | ||
1910 | set_bit(NFS4CLNT_CHECK_LEASE, &clp->cl_state); | ||
1911 | nfs4_schedule_state_manager(clp); | ||
1912 | } | ||
1913 | |||
1914 | void nfs41_server_notify_target_slotid_update(struct nfs_client *clp) | ||
1915 | { | ||
1916 | nfs41_ping_server(clp); | ||
1917 | } | ||
1918 | |||
1907 | static void nfs4_reset_all_state(struct nfs_client *clp) | 1919 | static void nfs4_reset_all_state(struct nfs_client *clp) |
1908 | { | 1920 | { |
1909 | if (test_and_set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state) == 0) { | 1921 | if (test_and_set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state) == 0) { |