tipc: fix socket flow control accounting error at tipc_send_stream
authorParthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Mon, 24 Apr 2017 13:00:42 +0000 (15:00 +0200)
committerDavid S. Miller <davem@davemloft.net>
Tue, 25 Apr 2017 15:45:37 +0000 (11:45 -0400)
commit3364d61c92ecca7a8da990659c4b0ae1fcf0fcfb
tree123f0e5a701ba5d91c58a9c2c5e3e89fb4dcda19
parentb7d6df57516f8e6a1c847b822ec2a62555455f88
tipc: fix socket flow control accounting error at tipc_send_stream

Until now in tipc_send_stream(), we return -1 when the socket
encounters link congestion even if the socket had successfully
sent partial data. This is incorrect as the application resends
the same the partial data leading to data corruption at
receiver's end.

In this commit, we return the partially sent bytes as the return
value at link congestion.

Fixes: 10724cc7bb78 ("tipc: redesign connection-level flow control")
Signed-off-by: Parthasarathy Bhuvaragan <parthasarathy.bhuvaragan@ericsson.com>
Reviewed-by: Jon Maloy <jon.maloy@ericsson.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
net/tipc/socket.c