mirror of
https://git.proxmox.com/git/mirror_ubuntu-kernels.git
synced 2025-11-17 18:36:21 +00:00
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: Chuck Lever <chuck.lever@oracle.com>
This commit is contained in:
parent
579900670a
commit
cc93ce9529
@ -957,6 +957,11 @@ int svc_rdma_sendto(struct svc_rqst *rqstp)
|
|||||||
ret = svc_rdma_send_reply_msg(rdma, sctxt, rctxt, rqstp);
|
ret = svc_rdma_send_reply_msg(rdma, sctxt, rctxt, rqstp);
|
||||||
if (ret < 0)
|
if (ret < 0)
|
||||||
goto err1;
|
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;
|
return 0;
|
||||||
|
|
||||||
err2:
|
err2:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user