diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-06 01:10:59 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-24 05:16:39 -0500 |
commit | 8feb2fb2bb986c533e18037d3c45a5f779421992 (patch) | |
tree | 7c10e24137e82d54aaa533aeadc21a2d2dae922c /net/unix | |
parent | 195e952d03a797aa953f62ffe24ec58693e17ed8 (diff) |
switch AF_PACKET and AF_UNIX to skb_copy_datagram_from_iter()
... and kill skb_copy_datagram_iovec()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'net/unix')
-rw-r--r-- | net/unix/af_unix.c | 11 |
1 files changed, 8 insertions, 3 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c index 5eee625d113f..4450d6226602 100644 --- a/net/unix/af_unix.c +++ b/net/unix/af_unix.c | |||
@@ -1459,6 +1459,9 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock, | |||
1459 | struct scm_cookie tmp_scm; | 1459 | struct scm_cookie tmp_scm; |
1460 | int max_level; | 1460 | int max_level; |
1461 | int data_len = 0; | 1461 | int data_len = 0; |
1462 | struct iov_iter from; | ||
1463 | |||
1464 | iov_iter_init(&from, WRITE, msg->msg_iov, msg->msg_iovlen, len); | ||
1462 | 1465 | ||
1463 | if (NULL == siocb->scm) | 1466 | if (NULL == siocb->scm) |
1464 | siocb->scm = &tmp_scm; | 1467 | siocb->scm = &tmp_scm; |
@@ -1516,7 +1519,7 @@ static int unix_dgram_sendmsg(struct kiocb *kiocb, struct socket *sock, | |||
1516 | skb_put(skb, len - data_len); | 1519 | skb_put(skb, len - data_len); |
1517 | skb->data_len = data_len; | 1520 | skb->data_len = data_len; |
1518 | skb->len = len; | 1521 | skb->len = len; |
1519 | err = skb_copy_datagram_from_iovec(skb, 0, msg->msg_iov, 0, len); | 1522 | err = skb_copy_datagram_from_iter(skb, 0, &from, len); |
1520 | if (err) | 1523 | if (err) |
1521 | goto out_free; | 1524 | goto out_free; |
1522 | 1525 | ||
@@ -1638,6 +1641,9 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock, | |||
1638 | bool fds_sent = false; | 1641 | bool fds_sent = false; |
1639 | int max_level; | 1642 | int max_level; |
1640 | int data_len; | 1643 | int data_len; |
1644 | struct iov_iter from; | ||
1645 | |||
1646 | iov_iter_init(&from, WRITE, msg->msg_iov, msg->msg_iovlen, len); | ||
1641 | 1647 | ||
1642 | if (NULL == siocb->scm) | 1648 | if (NULL == siocb->scm) |
1643 | siocb->scm = &tmp_scm; | 1649 | siocb->scm = &tmp_scm; |
@@ -1694,8 +1700,7 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock, | |||
1694 | skb_put(skb, size - data_len); | 1700 | skb_put(skb, size - data_len); |
1695 | skb->data_len = data_len; | 1701 | skb->data_len = data_len; |
1696 | skb->len = size; | 1702 | skb->len = size; |
1697 | err = skb_copy_datagram_from_iovec(skb, 0, msg->msg_iov, | 1703 | err = skb_copy_datagram_from_iter(skb, 0, &from, size); |
1698 | sent, size); | ||
1699 | if (err) { | 1704 | if (err) { |
1700 | kfree_skb(skb); | 1705 | kfree_skb(skb); |
1701 | goto out_err; | 1706 | goto out_err; |