aboutsummaryrefslogtreecommitdiffstats
path: root/net/unix/af_unix.c
diff options
context:
space:
mode:
authorDavid Woodhouse <David.Woodhouse@intel.com>2009-09-20 08:55:36 -0400
committerDavid Woodhouse <David.Woodhouse@intel.com>2009-09-20 08:55:36 -0400
commit6469f540ea37d53db089c8fea9c0c77a3d9353d4 (patch)
tree1dc9dc077150d57f4424cae49e711b5dd6e903a1 /net/unix/af_unix.c
parent304e6d5fe294b80e6d3107f99ec241816390ebcc (diff)
parent78f28b7c555359c67c2a0d23f7436e915329421e (diff)
Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux-2.6
Conflicts: drivers/mtd/mtdcore.c Merged in order that I can apply the Nomadik nand/onenand support patches.
Diffstat (limited to 'net/unix/af_unix.c')
-rw-r--r--net/unix/af_unix.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/unix/af_unix.c b/net/unix/af_unix.c
index fc3ebb906911..51ab497115eb 100644
--- a/net/unix/af_unix.c
+++ b/net/unix/af_unix.c
@@ -1501,6 +1501,7 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
1501 struct sk_buff *skb; 1501 struct sk_buff *skb;
1502 int sent = 0; 1502 int sent = 0;
1503 struct scm_cookie tmp_scm; 1503 struct scm_cookie tmp_scm;
1504 bool fds_sent = false;
1504 1505
1505 if (NULL == siocb->scm) 1506 if (NULL == siocb->scm)
1506 siocb->scm = &tmp_scm; 1507 siocb->scm = &tmp_scm;
@@ -1562,12 +1563,14 @@ static int unix_stream_sendmsg(struct kiocb *kiocb, struct socket *sock,
1562 size = min_t(int, size, skb_tailroom(skb)); 1563 size = min_t(int, size, skb_tailroom(skb));
1563 1564
1564 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred)); 1565 memcpy(UNIXCREDS(skb), &siocb->scm->creds, sizeof(struct ucred));
1565 if (siocb->scm->fp) { 1566 /* Only send the fds in the first buffer */
1567 if (siocb->scm->fp && !fds_sent) {
1566 err = unix_attach_fds(siocb->scm, skb); 1568 err = unix_attach_fds(siocb->scm, skb);
1567 if (err) { 1569 if (err) {
1568 kfree_skb(skb); 1570 kfree_skb(skb);
1569 goto out_err; 1571 goto out_err;
1570 } 1572 }
1573 fds_sent = true;
1571 } 1574 }
1572 1575
1573 err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size); 1576 err = memcpy_fromiovec(skb_put(skb, size), msg->msg_iov, size);