aboutsummaryrefslogtreecommitdiffstats
path: root/net/tipc/socket.c
diff options
context:
space:
mode:
Diffstat (limited to 'net/tipc/socket.c')
-rw-r--r--net/tipc/socket.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/net/tipc/socket.c b/net/tipc/socket.c
index e1c791798ba1..338837396642 100644
--- a/net/tipc/socket.c
+++ b/net/tipc/socket.c
@@ -576,12 +576,14 @@ static int send_msg(struct kiocb *iocb, struct socket *sock,
576 &dest->addr.name.name, 576 &dest->addr.name.name,
577 dest->addr.name.domain, 577 dest->addr.name.domain,
578 m->msg_iovlen, 578 m->msg_iovlen,
579 m->msg_iov); 579 m->msg_iov,
580 total_len);
580 } else if (dest->addrtype == TIPC_ADDR_ID) { 581 } else if (dest->addrtype == TIPC_ADDR_ID) {
581 res = tipc_send2port(tport->ref, 582 res = tipc_send2port(tport->ref,
582 &dest->addr.id, 583 &dest->addr.id,
583 m->msg_iovlen, 584 m->msg_iovlen,
584 m->msg_iov); 585 m->msg_iov,
586 total_len);
585 } else if (dest->addrtype == TIPC_ADDR_MCAST) { 587 } else if (dest->addrtype == TIPC_ADDR_MCAST) {
586 if (needs_conn) { 588 if (needs_conn) {
587 res = -EOPNOTSUPP; 589 res = -EOPNOTSUPP;
@@ -593,7 +595,8 @@ static int send_msg(struct kiocb *iocb, struct socket *sock,
593 res = tipc_multicast(tport->ref, 595 res = tipc_multicast(tport->ref,
594 &dest->addr.nameseq, 596 &dest->addr.nameseq,
595 m->msg_iovlen, 597 m->msg_iovlen,
596 m->msg_iov); 598 m->msg_iov,
599 total_len);
597 } 600 }
598 if (likely(res != -ELINKCONG)) { 601 if (likely(res != -ELINKCONG)) {
599 if (needs_conn && (res >= 0)) 602 if (needs_conn && (res >= 0))
@@ -659,7 +662,8 @@ static int send_packet(struct kiocb *iocb, struct socket *sock,
659 break; 662 break;
660 } 663 }
661 664
662 res = tipc_send(tport->ref, m->msg_iovlen, m->msg_iov); 665 res = tipc_send(tport->ref, m->msg_iovlen, m->msg_iov,
666 total_len);
663 if (likely(res != -ELINKCONG)) 667 if (likely(res != -ELINKCONG))
664 break; 668 break;
665 if (m->msg_flags & MSG_DONTWAIT) { 669 if (m->msg_flags & MSG_DONTWAIT) {
@@ -766,7 +770,7 @@ static int send_stream(struct kiocb *iocb, struct socket *sock,
766 bytes_to_send = curr_left; 770 bytes_to_send = curr_left;
767 my_iov.iov_base = curr_start; 771 my_iov.iov_base = curr_start;
768 my_iov.iov_len = bytes_to_send; 772 my_iov.iov_len = bytes_to_send;
769 res = send_packet(NULL, sock, &my_msg, 0); 773 res = send_packet(NULL, sock, &my_msg, bytes_to_send);
770 if (res < 0) { 774 if (res < 0) {
771 if (bytes_sent) 775 if (bytes_sent)
772 res = bytes_sent; 776 res = bytes_sent;