svcrdma: xpt_bc_xprt is already clear in __svc_rdma_free()
authorChuck Lever <chuck.lever@oracle.com>
Wed, 18 Aug 2021 21:12:26 +0000 (17:12 -0400)
committerChuck Lever <chuck.lever@oracle.com>
Thu, 19 Aug 2021 12:29:32 +0000 (08:29 -0400)
svc_xprt_free() already "puts" the bc_xprt before calling the
transport's "free" method. No need to do it twice.

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

index d1faa52..94b20fb 100644 (file)
@@ -545,7 +545,6 @@ static void __svc_rdma_free(struct work_struct *work)
 {
        struct svcxprt_rdma *rdma =
                container_of(work, struct svcxprt_rdma, sc_work);
-       struct svc_xprt *xprt = &rdma->sc_xprt;
 
        /* This blocks until the Completion Queues are empty */
        if (rdma->sc_qp && !IS_ERR(rdma->sc_qp))
@@ -553,12 +552,6 @@ static void __svc_rdma_free(struct work_struct *work)
 
        svc_rdma_flush_recv_queues(rdma);
 
-       /* Final put of backchannel client transport */
-       if (xprt->xpt_bc_xprt) {
-               xprt_put(xprt->xpt_bc_xprt);
-               xprt->xpt_bc_xprt = NULL;
-       }
-
        svc_rdma_destroy_rw_ctxts(rdma);
        svc_rdma_send_ctxts_destroy(rdma);
        svc_rdma_recv_ctxts_destroy(rdma);