Date: Thu, 23 Jan 2014 17:24:26 +0000 (UTC) From: Konstantin Belousov <kib@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r261080 - in head: lib/libc/sys sys/compat/freebsd32 sys/kern Message-ID: <201401231724.s0NHOQLE039584@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: kib Date: Thu Jan 23 17:24:26 2014 New Revision: 261080 URL: http://svnweb.freebsd.org/changeset/base/261080 Log: 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 Modified: head/lib/libc/sys/posix_fallocate.2 head/sys/compat/freebsd32/freebsd32_misc.c head/sys/kern/vfs_syscalls.c Modified: head/lib/libc/sys/posix_fallocate.2 ============================================================================== --- head/lib/libc/sys/posix_fallocate.2 Thu Jan 23 14:13:12 2014 (r261079) +++ head/lib/libc/sys/posix_fallocate.2 Thu Jan 23 17:24:26 2014 (r261080) @@ -83,9 +83,9 @@ that reduces the file size to a size sma 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 Modified: head/sys/compat/freebsd32/freebsd32_misc.c ============================================================================== --- head/sys/compat/freebsd32/freebsd32_misc.c Thu Jan 23 14:13:12 2014 (r261079) +++ head/sys/compat/freebsd32/freebsd32_misc.c Thu Jan 23 17:24:26 2014 (r261080) @@ -2995,8 +2995,9 @@ freebsd32_posix_fallocate(struct thread 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 Modified: head/sys/kern/vfs_syscalls.c ============================================================================== --- head/sys/kern/vfs_syscalls.c Thu Jan 23 14:13:12 2014 (r261079) +++ head/sys/kern/vfs_syscalls.c Thu Jan 23 17:24:26 2014 (r261080) @@ -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); } /*
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201401231724.s0NHOQLE039584>