xprtrdma: Avoid calls to ro_unmap_safe()
Micro-optimization: Most of the time, calls to ro_unmap_safe are expensive no-ops. Call only when there is work to do. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
109b88ab9d
commit
48016dce46
|
@ -621,7 +621,8 @@ xprt_rdma_free(struct rpc_task *task)
|
||||||
|
|
||||||
dprintk("RPC: %s: called on 0x%p\n", __func__, req->rl_reply);
|
dprintk("RPC: %s: called on 0x%p\n", __func__, req->rl_reply);
|
||||||
|
|
||||||
ia->ri_ops->ro_unmap_safe(r_xprt, req, !RPC_IS_ASYNC(task));
|
if (unlikely(!list_empty(&req->rl_registered)))
|
||||||
|
ia->ri_ops->ro_unmap_safe(r_xprt, req, !RPC_IS_ASYNC(task));
|
||||||
rpcrdma_unmap_sges(ia, req);
|
rpcrdma_unmap_sges(ia, req);
|
||||||
rpcrdma_buffer_put(req);
|
rpcrdma_buffer_put(req);
|
||||||
}
|
}
|
||||||
|
@ -657,7 +658,8 @@ xprt_rdma_send_request(struct rpc_task *task)
|
||||||
int rc = 0;
|
int rc = 0;
|
||||||
|
|
||||||
/* On retransmit, remove any previously registered chunks */
|
/* On retransmit, remove any previously registered chunks */
|
||||||
r_xprt->rx_ia.ri_ops->ro_unmap_safe(r_xprt, req, false);
|
if (unlikely(!list_empty(&req->rl_registered)))
|
||||||
|
r_xprt->rx_ia.ri_ops->ro_unmap_safe(r_xprt, req, false);
|
||||||
|
|
||||||
rc = rpcrdma_marshal_req(rqst);
|
rc = rpcrdma_marshal_req(rqst);
|
||||||
if (rc < 0)
|
if (rc < 0)
|
||||||
|
|
Loading…
Reference in New Issue