aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-11-06 01:10:59 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2014-11-24 05:16:39 -0500
commit8feb2fb2bb986c533e18037d3c45a5f779421992 (patch)
tree7c10e24137e82d54aaa533aeadc21a2d2dae922c /net/unix
parent195e952d03a797aa953f62ffe24ec58693e17ed8 (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.c11
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;