Re: cvs commit: src/sys/kern sys_generic.c

From: Poul-Henning Kamp <phk_at_phk.freebsd.dk>
Date: Tue, 25 Jan 2005 11:37:32 +0100
In message <20050125103250.GA29461_at_nagual.pp.ru>, Andrey Chernov writes:
>On Tue, Jan 25, 2005 at 11:26:32AM +0100, Poul-Henning Kamp wrote:
>> Show me code which breaks please.
>
>It is not an argument. Your commit violates both POSIX and SUSv3, namely 
>this thing:
>
>"This volume of IEEE Std 1003.1-2001 requires that no action be taken for 
>read() or write() when nbyte is zero. This is not intended to take 
>precedence over detection of errors (such as invalid buffer pointers or 
>file descriptors). This is consistent with the rest of this volume of IEEE 
>Std 1003.1-2001, but the phrasing here could be misread to require 
>detection of the zero case before any other errors."

Notice the "require" it doesn't ban the practice.

>If you read my previous message to the end, I already mention the case 
>which is obviously broken: FIFOs blocking and EAGAIN returning - it must 
>happens for zero byte reads too.

Go look at fifofs: we never did that (please see also rev. 1.104
to avoid a tiresome round of "you broke this" "no I didn't").

-- 
Poul-Henning Kamp       | UNIX since Zilog Zeus 3.20
phk_at_FreeBSD.ORG         | TCP/IP since RFC 956
FreeBSD committer       | BSD since 4.3-tahoe    
Never attribute to malice what can adequately be explained by incompetence.
Received on Tue Jan 25 2005 - 10:37:33 UTC