aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprtsock.c
diff options
context:
space:
mode:
authorTrond Myklebust <trond.myklebust@hammerspace.com>2019-02-19 13:21:38 -0500
committerTrond Myklebust <trond.myklebust@hammerspace.com>2019-02-20 17:35:58 -0500
commit6f903b111e33c4f0c349402efbd5319f52362f8e (patch)
tree331bb0fa9eec94001c7593113962738e8117fa70 /net/sunrpc/xprtsock.c
parentc87dc4c73bb04cb3f86c7d60f9f576eb08514ad8 (diff)
SUNRPC: Remove the redundant 'zerocopy' argument to xs_sendpages()
Signed-off-by: Trond Myklebust <trond.myklebust@hammerspace.com>
Diffstat (limited to 'net/sunrpc/xprtsock.c')
-rw-r--r--net/sunrpc/xprtsock.c16
1 files changed, 4 insertions, 12 deletions
diff --git a/net/sunrpc/xprtsock.c b/net/sunrpc/xprtsock.c
index 9c6eb76b3f46..8fa74c8a4fd8 100644
--- a/net/sunrpc/xprtsock.c
+++ b/net/sunrpc/xprtsock.c
@@ -776,11 +776,10 @@ static int xs_send_pagedata(struct socket *sock, struct msghdr *msg, struct xdr_
776 * @addrlen: UDP only -- length of destination address 776 * @addrlen: UDP only -- length of destination address
777 * @xdr: buffer containing this request 777 * @xdr: buffer containing this request
778 * @base: starting position in the buffer 778 * @base: starting position in the buffer
779 * @zerocopy: true if it is safe to use sendpage()
780 * @sent_p: return the total number of bytes successfully queued for sending 779 * @sent_p: return the total number of bytes successfully queued for sending
781 * 780 *
782 */ 781 */
783static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen, struct xdr_buf *xdr, unsigned int base, bool zerocopy, int *sent_p) 782static int xs_sendpages(struct socket *sock, struct sockaddr *addr, int addrlen, struct xdr_buf *xdr, unsigned int base, int *sent_p)
784{ 783{
785 struct msghdr msg = { 784 struct msghdr msg = {
786 .msg_name = addr, 785 .msg_name = addr,
@@ -935,7 +934,7 @@ static int xs_local_send_request(struct rpc_rqst *req)
935 req->rq_xtime = ktime_get(); 934 req->rq_xtime = ktime_get();
936 status = xs_sendpages(transport->sock, NULL, 0, xdr, 935 status = xs_sendpages(transport->sock, NULL, 0, xdr,
937 transport->xmit.offset, 936 transport->xmit.offset,
938 true, &sent); 937 &sent);
939 dprintk("RPC: %s(%u) = %d\n", 938 dprintk("RPC: %s(%u) = %d\n",
940 __func__, xdr->len - transport->xmit.offset, status); 939 __func__, xdr->len - transport->xmit.offset, status);
941 940
@@ -1002,7 +1001,7 @@ static int xs_udp_send_request(struct rpc_rqst *req)
1002 1001
1003 req->rq_xtime = ktime_get(); 1002 req->rq_xtime = ktime_get();
1004 status = xs_sendpages(transport->sock, xs_addr(xprt), xprt->addrlen, 1003 status = xs_sendpages(transport->sock, xs_addr(xprt), xprt->addrlen,
1005 xdr, 0, true, &sent); 1004 xdr, 0, &sent);
1006 1005
1007 dprintk("RPC: xs_udp_send_request(%u) = %d\n", 1006 dprintk("RPC: xs_udp_send_request(%u) = %d\n",
1008 xdr->len, status); 1007 xdr->len, status);
@@ -1066,7 +1065,6 @@ static int xs_tcp_send_request(struct rpc_rqst *req)
1066 struct rpc_xprt *xprt = req->rq_xprt; 1065 struct rpc_xprt *xprt = req->rq_xprt;
1067 struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt); 1066 struct sock_xprt *transport = container_of(xprt, struct sock_xprt, xprt);
1068 struct xdr_buf *xdr = &req->rq_snd_buf; 1067 struct xdr_buf *xdr = &req->rq_snd_buf;
1069 bool zerocopy = true;
1070 bool vm_wait = false; 1068 bool vm_wait = false;
1071 int status; 1069 int status;
1072 int sent; 1070 int sent;
@@ -1083,12 +1081,6 @@ static int xs_tcp_send_request(struct rpc_rqst *req)
1083 xs_pktdump("packet data:", 1081 xs_pktdump("packet data:",
1084 req->rq_svec->iov_base, 1082 req->rq_svec->iov_base,
1085 req->rq_svec->iov_len); 1083 req->rq_svec->iov_len);
1086 /* Don't use zero copy if this is a resend. If the RPC call
1087 * completes while the socket holds a reference to the pages,
1088 * then we may end up resending corrupted data.
1089 */
1090 if (req->rq_task->tk_flags & RPC_TASK_SENT)
1091 zerocopy = false;
1092 1084
1093 if (test_bit(XPRT_SOCK_UPD_TIMEOUT, &transport->sock_state)) 1085 if (test_bit(XPRT_SOCK_UPD_TIMEOUT, &transport->sock_state))
1094 xs_tcp_set_socket_timeouts(xprt, transport->sock); 1086 xs_tcp_set_socket_timeouts(xprt, transport->sock);
@@ -1101,7 +1093,7 @@ static int xs_tcp_send_request(struct rpc_rqst *req)
1101 sent = 0; 1093 sent = 0;
1102 status = xs_sendpages(transport->sock, NULL, 0, xdr, 1094 status = xs_sendpages(transport->sock, NULL, 0, xdr,
1103 transport->xmit.offset, 1095 transport->xmit.offset,
1104 zerocopy, &sent); 1096 &sent);
1105 1097
1106 dprintk("RPC: xs_tcp_send_request(%u) = %d\n", 1098 dprintk("RPC: xs_tcp_send_request(%u) = %d\n",
1107 xdr->len - transport->xmit.offset, status); 1099 xdr->len - transport->xmit.offset, status);