From: Stefan Fritsch <sf@sfritsch.de>
To: debian-hppa@lists.debian.org
Cc: linux-arch@vger.kernel.org
Subject: Re: flock, EAGAIN, and EWOULDBLOCK
Date: Mon, 23 Feb 2009 20:31:18 +0100 [thread overview]
Message-ID: <200902232031.18702.sf@sfritsch.de> (raw)
In-Reply-To: <20090223030315.GC16891@parisc-linux.org>
On Monday 23 February 2009, Matthew Wilcox wrote:
> On Sun, Feb 22, 2009 at 09:43:36PM -0500, Carlos O'Donell wrote:
> > flock is not POSIX, it's an interface invented by 4.2BSD, and was
> > previously emulated by glibc. The glibc wrapper implemented flock
> > with fcntl and made sure to return EWOULDBLOCK.
As an additional data point, openbsd's flock man page also says it
should return EWOULDBLOCK.
> We actually can do better than this ...
>
> #ifdef __KERNEL__
> #define EWOULDBLOCK EAGAIN
> #else
> #define EWOULDBLOCK /* whatever the fuck HPUX uses */
> #endif
>
> Now our kernel never returns -EWOULDBLOCK, only -EAGAIN. Correct
> applications must check for both. Incorrect applications tend to
> only check for AGAIN, not WOULDBLOCK. Problem solved.
This seems to be the current behaviour WRT flock(). But this is
broken. An application (like apr in this case) that checks for the
documented and well established return code is _not_ incorrect.
For apr in Debian, I will simply add the check for EAGAIN. But this is
cannot be the general solution.
Cheers,
Stefan
next prev parent reply other threads:[~2009-02-23 19:31 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <200902222252.45051.sf@sfritsch.de>
[not found] ` <20090222224924.GA13157@bombadil.infradead.org>
2009-02-23 1:42 ` flock, FAGAIN, and FWOULDBLOCK Kyle McMartin
2009-02-23 2:43 ` Carlos O'Donell
2009-02-23 2:43 ` Carlos O'Donell
2009-02-23 2:54 ` Kyle McMartin
2009-02-23 3:00 ` Carlos O'Donell
2009-02-23 3:03 ` Matthew Wilcox
2009-02-23 3:55 ` Michael Kerrisk
2009-02-23 17:49 ` Helge Deller
2009-02-23 19:31 ` Stefan Fritsch [this message]
2009-02-23 19:31 ` flock, EAGAIN, and EWOULDBLOCK Stefan Fritsch
2009-02-23 3:31 ` flock, FAGAIN, and FWOULDBLOCK Michael Kerrisk
2009-02-23 3:20 ` Michael Kerrisk
2009-02-23 3:50 ` Kyle McMartin
2009-02-23 4:01 ` Michael Kerrisk
2009-02-23 8:23 ` Geert Uytterhoeven
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=200902232031.18702.sf@sfritsch.de \
--to=sf@sfritsch.de \
--cc=debian-hppa@lists.debian.org \
--cc=linux-arch@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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox