svcrdma: Explicitly pass the transport into Write chunk I/O paths
authorChuck Lever <chuck.lever@oracle.com>
Mon, 4 Dec 2023 14:56:37 +0000 (09:56 -0500)
committerChuck Lever <chuck.lever@oracle.com>
Sun, 7 Jan 2024 22:54:28 +0000 (17:54 -0500)
Enable the eventual removal of the svc_rdma_chunk_ctxt::cc_rdma
field.

Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
net/sunrpc/xprtrdma/svc_rdma_rw.c

index 6fa818dc5b110593177b85c429f176c020475b4c..ef2579141c33020d7290e0a1d30930913ad80ddd 100644 (file)
@@ -220,6 +220,8 @@ static void svc_rdma_cc_release(struct svc_rdma_chunk_ctxt *cc,
  *  - Stores arguments for the SGL constructor functions
  */
 struct svc_rdma_write_info {
+       struct svcxprt_rdma     *wi_rdma;
+
        const struct svc_rdma_chunk     *wi_chunk;
 
        /* write state of this chunk */
@@ -246,6 +248,7 @@ svc_rdma_write_info_alloc(struct svcxprt_rdma *rdma,
        if (!info)
                return info;
 
+       info->wi_rdma = rdma;
        info->wi_chunk = chunk;
        info->wi_seg_off = 0;
        info->wi_seg_no = 0;
@@ -489,7 +492,7 @@ svc_rdma_build_writes(struct svc_rdma_write_info *info,
                      unsigned int remaining)
 {
        struct svc_rdma_chunk_ctxt *cc = &info->wi_cc;
-       struct svcxprt_rdma *rdma = cc->cc_rdma;
+       struct svcxprt_rdma *rdma = info->wi_rdma;
        const struct svc_rdma_segment *seg;
        struct svc_rdma_rw_ctxt *ctxt;
        int ret;