]> git.ipfire.org Git - thirdparty/glibc.git/commitdiff
Fix fallocate error return on i386.
authorAndreas Schwab <schwab@redhat.com>
Thu, 8 Apr 2010 22:44:55 +0000 (15:44 -0700)
committerPetr Baudis <pasky@ucw.cz>
Wed, 12 May 2010 01:21:16 +0000 (03:21 +0200)
(cherry picked from commit de240a05b3638879af2f9ab663c56ad8b26b1ad3)

ChangeLog
sysdeps/unix/sysv/linux/i386/fallocate.c
sysdeps/unix/sysv/linux/i386/fallocate64.c

index e2a23b7b500fe34841a4f6e94bfcc87c70b38b79..1339765a80b5d9cbde373e76194536f2b8e7a6a5 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2010-04-07  Andreas Schwab  <schwab@redhat.com>
+
+       * sysdeps/unix/sysv/linux/i386/fallocate.c: Set errno on error.
+       * sysdeps/unix/sysv/linux/i386/fallocate64.c: Likewise.
+
 2009-12-01  Eric Blake  <ebb9@byu.net>
 
        [BZ #11039]
index 14e788386cb02f3750c1a7856be928766ed263d0..1434a833f99049208cd4cbe774157e782490ae05 100644 (file)
@@ -30,7 +30,13 @@ int
 fallocate (int fd, int mode, __off_t offset, __off_t len)
 {
 #ifdef __NR_fallocate
-  return __call_fallocate (fd, mode, offset, len);
+  int err = __call_fallocate (fd, mode, offset, len);
+  if (__builtin_expect (err, 0))
+    {
+      __set_errno (err);
+      err = -1;
+    }
+  return err;
 #else
   __set_errno (ENOSYS);
   return -1;
index 85f315c9b68abaa770db91dc2609d4d32f997cca..063bab06e92399207315f22c06fea6e7c525f740 100644 (file)
@@ -30,7 +30,13 @@ int
 fallocate64 (int fd, int mode, __off64_t offset, __off64_t len)
 {
 #ifdef __NR_fallocate
-  return __call_fallocate (fd, mode, offset, len);
+  int err = __call_fallocate (fd, mode, offset, len);
+  if (__builtin_expect (err, 0))
+    {
+      __set_errno (err);
+      err = -1;
+    }
+  return err;
 #else
   __set_errno (ENOSYS);
   return -1;