Commit f4362a2c authored by Al Viro's avatar Al Viro

switch tcp_sock->ucopy from iovec (ucopy.iov) to msghdr (ucopy.msg)

Signed-off-by: default avatarAl Viro <viro@zeniv.linux.org.uk>
parent f69e6d13
...@@ -162,7 +162,7 @@ struct tcp_sock { ...@@ -162,7 +162,7 @@ struct tcp_sock {
struct { struct {
struct sk_buff_head prequeue; struct sk_buff_head prequeue;
struct task_struct *task; struct task_struct *task;
struct iovec *iov; struct msghdr *msg;
int memory; int memory;
int len; int len;
} ucopy; } ucopy;
......
...@@ -1729,7 +1729,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg, ...@@ -1729,7 +1729,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
if (!user_recv && !(flags & (MSG_TRUNC | MSG_PEEK))) { if (!user_recv && !(flags & (MSG_TRUNC | MSG_PEEK))) {
user_recv = current; user_recv = current;
tp->ucopy.task = user_recv; tp->ucopy.task = user_recv;
tp->ucopy.iov = msg->msg_iov; tp->ucopy.msg = msg;
} }
tp->ucopy.len = len; tp->ucopy.len = len;
......
...@@ -4421,7 +4421,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb) ...@@ -4421,7 +4421,7 @@ static void tcp_data_queue(struct sock *sk, struct sk_buff *skb)
__set_current_state(TASK_RUNNING); __set_current_state(TASK_RUNNING);
local_bh_enable(); local_bh_enable();
if (!skb_copy_datagram_iovec(skb, 0, tp->ucopy.iov, chunk)) { if (!skb_copy_datagram_msg(skb, 0, tp->ucopy.msg, chunk)) {
tp->ucopy.len -= chunk; tp->ucopy.len -= chunk;
tp->copied_seq += chunk; tp->copied_seq += chunk;
eaten = (chunk == skb->len); eaten = (chunk == skb->len);
...@@ -4941,10 +4941,9 @@ static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen) ...@@ -4941,10 +4941,9 @@ static int tcp_copy_to_iovec(struct sock *sk, struct sk_buff *skb, int hlen)
local_bh_enable(); local_bh_enable();
if (skb_csum_unnecessary(skb)) if (skb_csum_unnecessary(skb))
err = skb_copy_datagram_iovec(skb, hlen, tp->ucopy.iov, chunk); err = skb_copy_datagram_msg(skb, hlen, tp->ucopy.msg, chunk);
else else
err = skb_copy_and_csum_datagram_iovec(skb, hlen, err = skb_copy_and_csum_datagram_msg(skb, hlen, tp->ucopy.msg);
tp->ucopy.iov);
if (!err) { if (!err) {
tp->ucopy.len -= chunk; tp->ucopy.len -= chunk;
......
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