mirror of https://gitee.com/openkylin/linux.git
xprtrdma: Clean up rpcrdma_marshal_req() synopsis
Clean up: The caller already has rpcrdma_xprt, so pass that directly instead. And provide a documenting comment for this critical function. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:
parent
c1bcb68e39
commit
09e60641fc
|
@ -651,18 +651,27 @@ rpcrdma_unmap_sges(struct rpcrdma_ia *ia, struct rpcrdma_req *req)
|
|||
req->rl_mapped_sges = 0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Marshal a request: the primary job of this routine is to choose
|
||||
* the transfer modes. See comments below.
|
||||
/**
|
||||
* rpcrdma_marshal_req - Marshal and send one RPC request
|
||||
* @r_xprt: controlling transport
|
||||
* @rqst: RPC request to be marshaled
|
||||
*
|
||||
* Returns zero on success, otherwise a negative errno.
|
||||
* For the RPC in "rqst", this function:
|
||||
* - Chooses the transfer mode (eg., RDMA_MSG or RDMA_NOMSG)
|
||||
* - Registers Read, Write, and Reply chunks
|
||||
* - Constructs the transport header
|
||||
* - Posts a Send WR to send the transport header and request
|
||||
*
|
||||
* Returns:
|
||||
* %0 if the RPC was sent successfully,
|
||||
* %-ENOTCONN if the connection was lost,
|
||||
* %-EAGAIN if not enough pages are available for on-demand reply buffer,
|
||||
* %-ENOBUFS if no MRs are available to register chunks,
|
||||
* %-EIO if a permanent problem occurred while marshaling.
|
||||
*/
|
||||
|
||||
int
|
||||
rpcrdma_marshal_req(struct rpc_rqst *rqst)
|
||||
rpcrdma_marshal_req(struct rpcrdma_xprt *r_xprt, struct rpc_rqst *rqst)
|
||||
{
|
||||
struct rpc_xprt *xprt = rqst->rq_xprt;
|
||||
struct rpcrdma_xprt *r_xprt = rpcx_to_rdmax(xprt);
|
||||
struct rpcrdma_req *req = rpcr_to_rdmar(rqst);
|
||||
enum rpcrdma_chunktype rtype, wtype;
|
||||
struct rpcrdma_msg *headerp;
|
||||
|
|
|
@ -730,7 +730,7 @@ xprt_rdma_send_request(struct rpc_task *task)
|
|||
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(r_xprt, rqst);
|
||||
if (rc < 0)
|
||||
goto failed_marshal;
|
||||
|
||||
|
|
|
@ -637,7 +637,7 @@ enum rpcrdma_chunktype {
|
|||
bool rpcrdma_prepare_send_sges(struct rpcrdma_ia *, struct rpcrdma_req *,
|
||||
u32, struct xdr_buf *, enum rpcrdma_chunktype);
|
||||
void rpcrdma_unmap_sges(struct rpcrdma_ia *, struct rpcrdma_req *);
|
||||
int rpcrdma_marshal_req(struct rpc_rqst *);
|
||||
int rpcrdma_marshal_req(struct rpcrdma_xprt *r_xprt, struct rpc_rqst *rqst);
|
||||
void rpcrdma_set_max_header_sizes(struct rpcrdma_xprt *);
|
||||
void rpcrdma_reply_handler(struct work_struct *work);
|
||||
|
||||
|
|
Loading…
Reference in New Issue