diff options
Diffstat (limited to 'net/sctp/socket.c')
-rw-r--r-- | net/sctp/socket.c | 26 |
1 files changed, 14 insertions, 12 deletions
diff --git a/net/sctp/socket.c b/net/sctp/socket.c index a7e544e3f28a..95a5623d79a0 100644 --- a/net/sctp/socket.c +++ b/net/sctp/socket.c | |||
@@ -1814,20 +1814,22 @@ SCTP_STATIC int sctp_sendmsg(struct kiocb *iocb, struct sock *sk, | |||
1814 | sctp_set_owner_w(chunk); | 1814 | sctp_set_owner_w(chunk); |
1815 | 1815 | ||
1816 | chunk->transport = chunk_tp; | 1816 | chunk->transport = chunk_tp; |
1817 | |||
1818 | /* Send it to the lower layers. Note: all chunks | ||
1819 | * must either fail or succeed. The lower layer | ||
1820 | * works that way today. Keep it that way or this | ||
1821 | * breaks. | ||
1822 | */ | ||
1823 | err = sctp_primitive_SEND(asoc, chunk); | ||
1824 | /* Did the lower layer accept the chunk? */ | ||
1825 | if (err) | ||
1826 | sctp_chunk_free(chunk); | ||
1827 | SCTP_DEBUG_PRINTK("We sent primitively.\n"); | ||
1828 | } | 1817 | } |
1829 | 1818 | ||
1830 | sctp_datamsg_put(datamsg); | 1819 | /* Send it to the lower layers. Note: all chunks |
1820 | * must either fail or succeed. The lower layer | ||
1821 | * works that way today. Keep it that way or this | ||
1822 | * breaks. | ||
1823 | */ | ||
1824 | err = sctp_primitive_SEND(asoc, datamsg); | ||
1825 | /* Did the lower layer accept the chunk? */ | ||
1826 | if (err) | ||
1827 | sctp_datamsg_free(datamsg); | ||
1828 | else | ||
1829 | sctp_datamsg_put(datamsg); | ||
1830 | |||
1831 | SCTP_DEBUG_PRINTK("We sent primitively.\n"); | ||
1832 | |||
1831 | if (err) | 1833 | if (err) |
1832 | goto out_free; | 1834 | goto out_free; |
1833 | else | 1835 | else |