Skip site navigation (1)Skip section navigation (2)
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>