Commit b9779a54 authored by Trond Myklebust's avatar Trond Myklebust

SUNRPC: Ensure rq_bytes_sent is reset before request transmission

When we resend a request, ensure that the 'rq_bytes_sent' is reset
to zero.
Signed-off-by: default avatarTrond Myklebust <trond.myklebust@hammerspace.com>
parent 0ffe86f4
...@@ -252,7 +252,6 @@ static struct rpc_rqst *xprt_alloc_bc_request(struct rpc_xprt *xprt, __be32 xid) ...@@ -252,7 +252,6 @@ static struct rpc_rqst *xprt_alloc_bc_request(struct rpc_xprt *xprt, __be32 xid)
req = list_first_entry(&xprt->bc_pa_list, struct rpc_rqst, req = list_first_entry(&xprt->bc_pa_list, struct rpc_rqst,
rq_bc_pa_list); rq_bc_pa_list);
req->rq_reply_bytes_recvd = 0; req->rq_reply_bytes_recvd = 0;
req->rq_bytes_sent = 0;
memcpy(&req->rq_private_buf, &req->rq_rcv_buf, memcpy(&req->rq_private_buf, &req->rq_rcv_buf,
sizeof(req->rq_private_buf)); sizeof(req->rq_private_buf));
req->rq_xid = xid; req->rq_xid = xid;
......
...@@ -1602,7 +1602,6 @@ xprt_request_init(struct rpc_task *task) ...@@ -1602,7 +1602,6 @@ xprt_request_init(struct rpc_task *task)
req->rq_buffer = NULL; req->rq_buffer = NULL;
req->rq_xid = xprt_alloc_xid(xprt); req->rq_xid = xprt_alloc_xid(xprt);
xprt_init_connect_cookie(req, xprt); xprt_init_connect_cookie(req, xprt);
req->rq_bytes_sent = 0;
req->rq_snd_buf.len = 0; req->rq_snd_buf.len = 0;
req->rq_snd_buf.buflen = 0; req->rq_snd_buf.buflen = 0;
req->rq_rcv_buf.len = 0; req->rq_rcv_buf.len = 0;
...@@ -1752,7 +1751,6 @@ xprt_init_bc_request(struct rpc_rqst *req, struct rpc_task *task) ...@@ -1752,7 +1751,6 @@ xprt_init_bc_request(struct rpc_rqst *req, struct rpc_task *task)
*/ */
xbufp->len = xbufp->head[0].iov_len + xbufp->page_len + xbufp->len = xbufp->head[0].iov_len + xbufp->page_len +
xbufp->tail[0].iov_len; xbufp->tail[0].iov_len;
req->rq_bytes_sent = 0;
} }
#endif #endif
......
...@@ -267,7 +267,6 @@ void rpcrdma_bc_receive_call(struct rpcrdma_xprt *r_xprt, ...@@ -267,7 +267,6 @@ void rpcrdma_bc_receive_call(struct rpcrdma_xprt *r_xprt,
/* Prepare rqst */ /* Prepare rqst */
rqst->rq_reply_bytes_recvd = 0; rqst->rq_reply_bytes_recvd = 0;
rqst->rq_bytes_sent = 0;
rqst->rq_xid = *p; rqst->rq_xid = *p;
rqst->rq_private_buf.len = size; rqst->rq_private_buf.len = size;
......
...@@ -738,7 +738,6 @@ xprt_rdma_send_request(struct rpc_rqst *rqst) ...@@ -738,7 +738,6 @@ xprt_rdma_send_request(struct rpc_rqst *rqst)
goto drop_connection; goto drop_connection;
rqst->rq_xmit_bytes_sent += rqst->rq_snd_buf.len; rqst->rq_xmit_bytes_sent += rqst->rq_snd_buf.len;
rqst->rq_bytes_sent = 0;
/* An RPC with no reply will throw off credit accounting, /* An RPC with no reply will throw off credit accounting,
* so drop the connection to reset the credit grant. * so drop the connection to reset the credit grant.
......
...@@ -951,7 +951,6 @@ static int xs_local_send_request(struct rpc_rqst *req) ...@@ -951,7 +951,6 @@ static int xs_local_send_request(struct rpc_rqst *req)
req->rq_bytes_sent = transport->xmit.offset; req->rq_bytes_sent = transport->xmit.offset;
if (likely(req->rq_bytes_sent >= req->rq_slen)) { if (likely(req->rq_bytes_sent >= req->rq_slen)) {
req->rq_xmit_bytes_sent += transport->xmit.offset; req->rq_xmit_bytes_sent += transport->xmit.offset;
req->rq_bytes_sent = 0;
transport->xmit.offset = 0; transport->xmit.offset = 0;
return 0; return 0;
} }
...@@ -1117,7 +1116,6 @@ static int xs_tcp_send_request(struct rpc_rqst *req) ...@@ -1117,7 +1116,6 @@ static int xs_tcp_send_request(struct rpc_rqst *req)
req->rq_bytes_sent = transport->xmit.offset; req->rq_bytes_sent = transport->xmit.offset;
if (likely(req->rq_bytes_sent >= req->rq_slen)) { if (likely(req->rq_bytes_sent >= req->rq_slen)) {
req->rq_xmit_bytes_sent += transport->xmit.offset; req->rq_xmit_bytes_sent += transport->xmit.offset;
req->rq_bytes_sent = 0;
transport->xmit.offset = 0; transport->xmit.offset = 0;
return 0; return 0;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment