From: David Miller <davem@davemloft.net>
To: swivel@shells.gnugeneration.com
Cc: alan@lxorguk.ukuu.org.uk, linux-kernel@vger.kernel.org
Subject: Re: Honoring SO_RCVLOWAT in proto_ops.poll methods
Date: Wed, 05 Nov 2008 03:36:47 -0800 (PST) [thread overview]
Message-ID: <20081105.033647.118893751.davem@davemloft.net> (raw)
In-Reply-To: <20081020035819.GG2811@fc6222126.aspadmin.net>
From: swivel@shells.gnugeneration.com
Date: Sun, 19 Oct 2008 22:58:19 -0500
> From what I can see the recv() MSG_PEEK fix is trivial anyways, why not
> fix it?
Does this patch work for you?
tcp: Fix recvmsg MSG_PEEK influence of blocking behavior.
Vito Caputo noticed that tcp_recvmsg() returns immediately from
partial reads when MSG_PEEK is used. In particular, this means that
SO_RCVLOWAT is not respected.
Simply remove the test. And this matches the behavior of several
other systems, including BSD.
Signed-off-by: David S. Miller <davem@davemloft.net>
---
net/ipv4/tcp.c | 3 +--
1 files changed, 1 insertions(+), 2 deletions(-)
diff --git a/net/ipv4/tcp.c b/net/ipv4/tcp.c
index eccb716..c5aca0b 100644
--- a/net/ipv4/tcp.c
+++ b/net/ipv4/tcp.c
@@ -1374,8 +1374,7 @@ int tcp_recvmsg(struct kiocb *iocb, struct sock *sk, struct msghdr *msg,
sk->sk_state == TCP_CLOSE ||
(sk->sk_shutdown & RCV_SHUTDOWN) ||
!timeo ||
- signal_pending(current) ||
- (flags & MSG_PEEK))
+ signal_pending(current))
break;
} else {
if (sock_flag(sk, SOCK_DONE))
--
1.5.6.5
next prev parent reply other threads:[~2008-11-05 11:37 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2008-09-20 21:42 Honoring SO_RCVLOWAT in proto_ops.poll methods lkml
2008-09-20 22:21 ` David Miller
2008-09-20 23:00 ` lkml
2008-09-21 9:24 ` lkml
2008-09-21 14:18 ` Alan Cox
[not found] ` <20080921145134.GT2761@fc6222126.aspadmin.net>
2008-09-21 20:13 ` Alan Cox
2008-09-21 22:09 ` lkml
2008-10-05 20:27 ` David Miller
2008-10-05 21:45 ` swivel
2008-10-05 22:30 ` David Miller
2008-10-06 5:17 ` lkml
2008-10-06 17:18 ` David Miller
2008-10-06 17:45 ` David Miller
2008-10-13 7:34 ` David Miller
2008-10-13 8:32 ` swivel
2008-10-13 9:58 ` David Miller
2008-10-20 3:58 ` swivel
2008-10-20 4:25 ` David Miller
2008-11-05 11:36 ` David Miller [this message]
2008-09-22 12:15 ` David Miller
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20081105.033647.118893751.davem@davemloft.net \
--to=davem@davemloft.net \
--cc=alan@lxorguk.ukuu.org.uk \
--cc=linux-kernel@vger.kernel.org \
--cc=swivel@shells.gnugeneration.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox