summaryrefslogtreecommitdiff
path: root/net/iucv
diff options
context:
space:
mode:
authorUrsula Braun <ursula.braun@de.ibm.com>2014-03-19 07:57:59 +0100
committerDavid S. Miller <davem@davemloft.net>2014-03-20 00:06:55 -0400
commit2f139a5d8225666faee9f1d3c5629c4e5ff947aa (patch)
treec00a561cf894c8fe4abe7694a15e3e1e049f2989 /net/iucv
parent20248162f221184790b598a88763a87170b0f08e (diff)
downloadlwn-2f139a5d8225666faee9f1d3c5629c4e5ff947aa.tar.gz
lwn-2f139a5d8225666faee9f1d3c5629c4e5ff947aa.zip
af_iucv: recvmsg problem for SOCK_STREAM sockets
Commit f9c41a62bba3f3f7ef3541b2a025e3371bcbba97 introduced a problem for SOCK_STREAM sockets, when only part of the incoming iucv message is received by user space. In this case the remaining data of the iucv message is lost. This patch makes sure an incompletely received iucv message is queued back to the receive queue. Signed-off-by: Ursula Braun <ursula.braun@de.ibm.com> Signed-off-by: Frank Blaschka <frank.blaschka@de.ibm.com> Reported-by: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'net/iucv')
-rw-r--r--net/iucv/af_iucv.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/net/iucv/af_iucv.c b/net/iucv/af_iucv.c
index c4b7218058b6..a5e03119107a 100644
--- a/net/iucv/af_iucv.c
+++ b/net/iucv/af_iucv.c
@@ -1382,6 +1382,7 @@ static int iucv_sock_recvmsg(struct kiocb *iocb, struct socket *sock,
if (sk->sk_type == SOCK_STREAM) {
if (copied < rlen) {
IUCV_SKB_CB(skb)->offset = offset + copied;
+ skb_queue_head(&sk->sk_receive_queue, skb);
goto done;
}
}