Re: [PATCH] ext4: Remove repeated test in ext4_file_read_iter.

From: Theodore Ts'o
Date: Wed Jan 10 2018 - 15:03:05 EST


On Wed, Jan 10, 2018 at 10:01:49PM +0800, Sean Fu wrote:
>
> Correct, IOCB_NOWAIT read with zero count can return -EAGAIN, But I
> think that it is reasonable. while it got lock, zero would be returned
> in this case.

Returning -EAGAIN and 0 are not the same thing. Specifically
returning 0 means "end of file". Hence, it is NOT reasonable.

See the man page for read(2) or the relevant Single Unix Specification
standard:

RETURN VALUE
On success, the number of bytes read is returned (zero indicates
end of file)....

Changing the behavior of the system in which will break userspace is
never acceptable, and even more so given that this is just a "cleanup
patch".

- Ted