diff options
author | Andy Adamson <andros@netapp.com> | 2016-09-09 09:22:28 -0400 |
---|---|---|
committer | Anna Schumaker <Anna.Schumaker@Netapp.com> | 2016-09-19 13:08:36 -0400 |
commit | ad0849a7efc3bebbb5b9385225085abdae3911b0 (patch) | |
tree | 020bb36b78d4e28cdebec319fd597e26486c057a /fs/nfs/nfs4client.c | |
parent | 04ea1b3e6d8ed4978bb608c1748530af3de8c274 (diff) | |
download | linux-ad0849a7efc3bebbb5b9385225085abdae3911b0.tar.gz linux-ad0849a7efc3bebbb5b9385225085abdae3911b0.tar.bz2 linux-ad0849a7efc3bebbb5b9385225085abdae3911b0.zip |
NFS test session trunking with exchange id
Use an async exchange id call to test for session trunking
To conform with RFC 5661 section 18.35.4, the Non-Update on
Existing Clientid case, save the exchange id verifier in
cl_confirm and use it for the session trunking exhange id test.
Signed-off-by: Andy Adamson <andros@netapp.com>
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Diffstat (limited to 'fs/nfs/nfs4client.c')
-rw-r--r-- | fs/nfs/nfs4client.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/fs/nfs/nfs4client.c b/fs/nfs/nfs4client.c index 6914d4b176ae..a2c9654d018f 100644 --- a/fs/nfs/nfs4client.c +++ b/fs/nfs/nfs4client.c @@ -637,9 +637,10 @@ out_scope_mismatch: } /** - * nfs4_detect_session_trunking - Checks for session trunking called - * after a successful EXCHANGE_ID testing a multi-addr connection to be - * potentially added as a session trunk + * nfs4_detect_session_trunking - Checks for session trunking. + * + * Called after a successful EXCHANGE_ID on a multi-addr connection. + * Upon success, add the transport. * * @clp: original mount nfs_client * @res: result structure from an exchange_id using the original mount @@ -673,6 +674,9 @@ int nfs4_detect_session_trunking(struct nfs_client *clp, if (!nfs4_check_server_scope(clp->cl_serverscope, res->server_scope)) goto out_err; + /* Session trunking passed, add the xprt */ + rpc_clnt_xprt_switch_add_xprt(clp->cl_rpcclient, xprt); + pr_info("NFS: %s: Session trunking succeeded for %s\n", clp->cl_hostname, xprt->address_strings[RPC_DISPLAY_ADDR]); |