The posix_fallocate(2) syscall should return error number on error,

without modifying errno.

Reported and tested by:	Gennady Proskurin <gpr@mail.ru>
Reviewed by:	mdf
PR:	standards/186028
Sponsored by:	The FreeBSD Foundation
MFC after:	1 week
This commit is contained in:
Konstantin Belousov 2014-01-23 17:24:26 +00:00
parent b341c6c857
commit 2852de0489
3 changed files with 8 additions and 5 deletions

View File

@ -83,9 +83,9 @@ that reduces the file size to a size smaller than
If successful,
.Fn posix_fallocate
returns zero.
It returns -1 on failure, and sets
It returns error number on failure, without setting
.Va errno
to indicate the error.
variable.
.Sh ERRORS
Possible failure conditions:
.Bl -tag -width Er

View File

@ -2995,8 +2995,9 @@ freebsd32_posix_fallocate(struct thread *td,
struct freebsd32_posix_fallocate_args *uap)
{
return (kern_posix_fallocate(td, uap->fd,
PAIR32TO64(off_t, uap->offset), PAIR32TO64(off_t, uap->len)));
td->td_retval[0] = kern_posix_fallocate(td, uap->fd,
PAIR32TO64(off_t, uap->offset), PAIR32TO64(off_t, uap->len));
return (0);
}
int

View File

@ -4584,7 +4584,9 @@ int
sys_posix_fallocate(struct thread *td, struct posix_fallocate_args *uap)
{
return (kern_posix_fallocate(td, uap->fd, uap->offset, uap->len));
td->td_retval[0] = kern_posix_fallocate(td, uap->fd, uap->offset,
uap->len);
return (0);
}
/*