Re: posix_fallocate(2) && posix_fadvise(2) are somewhat broken

From: Dag-Erling Smørgrav <des_at_des.no>
Date: Tue, 08 Dec 2015 19:54:06 +0100
Konstantin Belousov <kostikbel_at_gmail.com> writes:
> Dag-Erling Smørgrav <des_at_des.no> writes:
> > Maxim Sobolev <sobomax_at_FreeBSD.org> writes:
> > > Hi, while working on some unrelated feature I've noticed that at least
> > > those two system calls are not returning proper value (-1) on error.
> > > Instead actual errno value is returned from the syscall verbatim,
> > > i.e. posix_fadvise() returns 22 on EINVAL.
> > That's how syscalls work.
> No, this is not how typical syscalls work, but is how the posix_fallocate()
> and posix_fadvise() are specified by Posix.  The patch is wrong, see also
> r261080 and r288640.

Umm, I can't find the code ATM but syscalls store the actual return
value in td_retval and return 0 or EWHATEVER and the syscall wrapper
handles the translation.  If that's not what Maxim was talking about,
then please ignore me.

Anyway, happy to hear that the X/Open group have found a new way to
screw people over.

DES
-- 
Dag-Erling Smørgrav - des_at_des.no
Received on Tue Dec 08 2015 - 17:54:14 UTC

This archive was generated by hypermail 2.4.0 : Wed May 19 2021 - 11:41:01 UTC