SUNRPC: Refactor rpc_xdr_buf_init()
Clean up: there is some XDR initialization logic that is common to the forward channel and backchannel. Move it to an XDR header so it can be shared. rpc_rqst::rq_buffer points to a buffer containing big-endian data. Update its annotation as part of the clean up. Signed-off-by: Chuck Lever <chuck.lever@oracle.com> Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
This commit is contained in:

committed by
Anna Schumaker

parent
eb342e9a38
commit
b9c5bc03be
@@ -1746,18 +1746,6 @@ rpc_task_force_reencode(struct rpc_task *task)
|
||||
task->tk_rqstp->rq_bytes_sent = 0;
|
||||
}
|
||||
|
||||
static inline void
|
||||
rpc_xdr_buf_init(struct xdr_buf *buf, void *start, size_t len)
|
||||
{
|
||||
buf->head[0].iov_base = start;
|
||||
buf->head[0].iov_len = len;
|
||||
buf->tail[0].iov_len = 0;
|
||||
buf->page_len = 0;
|
||||
buf->flags = 0;
|
||||
buf->len = 0;
|
||||
buf->buflen = len;
|
||||
}
|
||||
|
||||
/*
|
||||
* 3. Encode arguments of an RPC call
|
||||
*/
|
||||
@@ -1770,12 +1758,12 @@ rpc_xdr_encode(struct rpc_task *task)
|
||||
|
||||
dprint_status(task);
|
||||
|
||||
rpc_xdr_buf_init(&req->rq_snd_buf,
|
||||
req->rq_buffer,
|
||||
req->rq_callsize);
|
||||
rpc_xdr_buf_init(&req->rq_rcv_buf,
|
||||
(char *)req->rq_buffer + req->rq_callsize,
|
||||
req->rq_rcvsize);
|
||||
xdr_buf_init(&req->rq_snd_buf,
|
||||
req->rq_buffer,
|
||||
req->rq_callsize);
|
||||
xdr_buf_init(&req->rq_rcv_buf,
|
||||
(char *)req->rq_buffer + req->rq_callsize,
|
||||
req->rq_rcvsize);
|
||||
|
||||
p = rpc_encode_header(task);
|
||||
if (p == NULL) {
|
||||
|
Reference in New Issue
Block a user