Commit cc93ce95 authored by Chuck Lever's avatar Chuck Lever
Browse files

svcrdma: Retain the page backing rq_res.head[0].iov_base



svc_rdma_sendto() now waits for the NIC hardware to finish with
the pages backing rq_res. We still have to release the page array
in some cases, but now it's always safe to immediately re-use the
page backing rq_res's head buffer.

Signed-off-by: default avatarChuck Lever <chuck.lever@oracle.com>
parent 57990067
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -957,6 +957,11 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
	ret = svc_rdma_send_reply_msg(rdma, sctxt, rctxt, rqstp);
	if (ret < 0)
		goto err1;

	/* Prevent svc_xprt_release() from releasing the page backing
	 * rq_res.head[0].iov_base. It's no longer being accessed by
	 * the I/O device. */
	rqstp->rq_respages++;
	return 0;

 err2: