All of lore.kernel.org
 help / color / mirror / Atom feed
From: Jan Kasprzak <kas@informatics.muni.cz>
To: Wolfgang Rohdewald <WRohdewald@dplanet.ch>
Cc: linux-kernel@vger.kernel.org
Subject: Re: Possible problem with zero-copy TCP and sendfile()
Date: Wed, 18 Apr 2001 08:09:46 +0200	[thread overview]
Message-ID: <20010418080946.E2167@informatics.muni.cz> (raw)
In-Reply-To: <20010417170206.C2589096@informatics.muni.cz> <20010417161036.A21620@bastard.inflicted.net> <20010417223636.C2167@informatics.muni.cz> <20010417212249.D0552C24B@poboxes.com>
In-Reply-To: <20010417212249.D0552C24B@poboxes.com>; from WRohdewald@dplanet.ch on Tue, Apr 17, 2001 at 11:22:47PM +0200

Wolfgang Rohdewald wrote:
: On Tuesday 17 April 2001 22:36, Jan Kasprzak wrote:
: > +    if (len == -1 || len > 0 && len < count) {
: 
: are you sure there are no missing () ?
: 
: if ((len == -1) || (len > 0) && (len < count)) {
: 
: assumig that && has precedence over || (I believe so)

	Yes, but the precedence of ==, <, and > is even higher.
However, I've found a problem with the previous patch: The first chunk should
read:

-    if((len = sendfile(session.d->outf->fd, retr_fd, offset, count)) == -1) {
+    len = sendfile(session.d->outf->fd, retr_fd, offset, count);
+    if (len == -1 || len > 0 && len < count) {
+       if (len != -1)
+              errno = EINTR;

i.e. we should not overwrite errno, when it is valid.

-Yenya

PS.: You can find the C operators precedence for example at
	http://www.howstuffworks.com/c14.htm (found by Google).

-- 
\ Jan "Yenya" Kasprzak <kas at fi.muni.cz>       http://www.fi.muni.cz/~kas/
\\ PGP: finger kas at aisa.fi.muni.cz   0D99A7FB206605D7 8B35FCDE05B18A5E //
\\\             Czech Linux Homepage:  http://www.linux.cz/              ///
Mantra: "everything is a stream of bytes". Repeat until enlightened. --Linus

      parent reply	other threads:[~2001-04-18  6:10 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2001-04-17 13:10 Possible problem with zero-copy TCP and sendfile() Jan Kasprzak
2001-04-17 14:41 ` Andi Kleen
2001-04-17 15:50   ` Jan Kasprzak
     [not found]     ` <20010417175916.A11824@gruyere.muc.suse.de>
2001-04-17 17:07       ` Jan Kasprzak
2001-04-17 17:40         ` Jan Kasprzak
2001-04-17 14:48 ` Alan Cox
2001-04-17 15:02   ` Jan Kasprzak
2001-04-17 16:04     ` Alan Cox
2001-04-17 16:15       ` Jan Kasprzak
2001-04-17 18:24         ` Pekka Pietikainen
2001-04-17 20:10         ` Jesse S Sipprell
2001-04-17 20:23           ` David S. Miller
2001-04-17 20:44             ` Jesse S Sipprell
2001-04-17 20:50               ` David S. Miller
2001-04-17 20:36           ` Jan Kasprzak
2001-04-17 21:22             ` Wolfgang Rohdewald
2001-04-17 21:43               ` Martin Josefsson
2001-04-18  6:09               ` Jan Kasprzak [this message]

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=20010418080946.E2167@informatics.muni.cz \
    --to=kas@informatics.muni.cz \
    --cc=WRohdewald@dplanet.ch \
    --cc=linux-kernel@vger.kernel.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.