NFSv4.1 probe offline transports for trunking on session creation
authorOlga Kornievskaia <olga.kornievskaia@gmail.com>
Mon, 25 Jul 2022 13:32:31 +0000 (09:32 -0400)
committerTrond Myklebust <trond.myklebust@hammerspace.com>
Mon, 25 Jul 2022 14:06:04 +0000 (10:06 -0400)
Once the session is established call into the SUNRPC layer to check
if any offlined trunking connections should be re-enabled.

Signed-off-by: Olga Kornievskaia <kolga@netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
fs/nfs/nfs4proc.c

index 4850e29904e65252d0789b9196ad0ed9e2ae4962..5f59de55ac842fb77f3ffdd12491a9662bbb1157 100644 (file)
@@ -9249,6 +9249,13 @@ int nfs4_proc_create_session(struct nfs_client *clp, const struct cred *cred)
        int status;
        unsigned *ptr;
        struct nfs4_session *session = clp->cl_session;
+       struct nfs4_add_xprt_data xprtdata = {
+               .clp = clp,
+       };
+       struct rpc_add_xprt_test rpcdata = {
+               .add_xprt_test = clp->cl_mvops->session_trunk,
+               .data = &xprtdata,
+       };
 
        dprintk("--> %s clp=%p session=%p\n", __func__, clp, session);
 
@@ -9265,6 +9272,7 @@ int nfs4_proc_create_session(struct nfs_client *clp, const struct cred *cred)
        ptr = (unsigned *)&session->sess_id.data[0];
        dprintk("%s client>seqid %d sessionid %u:%u:%u:%u\n", __func__,
                clp->cl_seqid, ptr[0], ptr[1], ptr[2], ptr[3]);
+       rpc_clnt_probe_trunked_xprts(clp->cl_rpcclient, &rpcdata);
 out:
        return status;
 }