diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-11-26 16:16:54 -0500 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2012-12-05 18:30:47 -0500 |
commit | c10e449827e6008ef5a4a71c0247c7eb73948e1b (patch) | |
tree | 7512d993fc182b24655d91ea930706451c0591e6 /fs/nfs/nfs4state.c | |
parent | 0ca3f4825ac92a10aa8f6534f765c44f22778dd3 (diff) |
NFSv4.1: Ping server when our session table limits are too high
If the server requests a lower target_highest_slotid, then ensure
that we ping it with at least one RPC call containing an
appropriate SEQUENCE op. This ensures that the server won't need to
send a recall callback in order to shrink the slot table.
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'fs/nfs/nfs4state.c')
-rw-r--r-- | fs/nfs/nfs4state.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/fs/nfs/nfs4state.c b/fs/nfs/nfs4state.c index 1402283d152d..c137421f2123 100644 --- a/fs/nfs/nfs4state.c +++ b/fs/nfs/nfs4state.c | |||
@@ -1961,6 +1961,11 @@ void nfs41_server_notify_target_slotid_update(struct nfs_client *clp) | |||
1961 | nfs41_ping_server(clp); | 1961 | nfs41_ping_server(clp); |
1962 | } | 1962 | } |
1963 | 1963 | ||
1964 | void nfs41_server_notify_highest_slotid_update(struct nfs_client *clp) | ||
1965 | { | ||
1966 | nfs41_ping_server(clp); | ||
1967 | } | ||
1968 | |||
1964 | static void nfs4_reset_all_state(struct nfs_client *clp) | 1969 | static void nfs4_reset_all_state(struct nfs_client *clp) |
1965 | { | 1970 | { |
1966 | if (test_and_set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state) == 0) { | 1971 | if (test_and_set_bit(NFS4CLNT_LEASE_EXPIRED, &clp->cl_state) == 0) { |