Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e1ede312 authored by Chuck Lever's avatar Chuck Lever Committed by Trond Myklebust
Browse files

xprtrdma: Fix helper that drains the transport



We want to drain only the RQ first. Otherwise the transport can
deadlock on ->close if there are outstanding Send completions.

Fixes: 6d2d0ee2 ("xprtrdma: Replace rpcrdma_receive_wq ... ")
Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
Cc: stable@vger.kernel.org # v5.0+
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 29e7ca71
Loading
Loading
Loading
Loading
+1 −1
Original line number Original line Diff line number Diff line
@@ -90,7 +90,7 @@ static void rpcrdma_xprt_drain(struct rpcrdma_xprt *r_xprt)
	/* Flush Receives, then wait for deferred Reply work
	/* Flush Receives, then wait for deferred Reply work
	 * to complete.
	 * to complete.
	 */
	 */
	ib_drain_qp(ia->ri_id->qp);
	ib_drain_rq(ia->ri_id->qp);
	drain_workqueue(buf->rb_completion_wq);
	drain_workqueue(buf->rb_completion_wq);


	/* Deferred Reply processing might have scheduled
	/* Deferred Reply processing might have scheduled