Remove __ASSUME_FALLOCATE.
authorJoseph Myers <joseph@codesourcery.com>
Thu, 17 Mar 2016 12:15:51 +0000 (12:15 +0000)
committerJoseph Myers <joseph@codesourcery.com>
Thu, 17 Mar 2016 12:15:51 +0000 (12:15 +0000)
Given current Linux kernel version requirements, we can always assume
the fallocate syscall to be available.  This patch removes
__ASSUME_FALLOCATE and a test for whether __NR_fallocate is defined.

Tested for x86_64 and x86 that installed stripped shared libraries are
unchanged by the patch.

* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FALLOCATE):
Remove macro.
* sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c: Do not
include <kernel-features.h>.
[!__ASSUME_FALLOCATE]: Remove conditional code.
(posix_fallocate) [__NR_fallocate]: Make code unconditional.

ChangeLog
sysdeps/unix/sysv/linux/kernel-features.h
sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c

index 1eb8bd8..9b321ec 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,12 @@
+2016-03-17  Joseph Myers  <joseph@codesourcery.com>
+
+       * sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_FALLOCATE):
+       Remove macro.
+       * sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c: Do not
+       include <kernel-features.h>.
+       [!__ASSUME_FALLOCATE]: Remove conditional code.
+       (posix_fallocate) [__NR_fallocate]: Make code unconditional.
+
 2016-03-16  H.J. Lu  <hongjiu.lu@intel.com>
 
        * sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
index 4a7460e..51cd63c 100644 (file)
 /* Support for private futexes was added in 2.6.22.  */
 #define __ASSUME_PRIVATE_FUTEX 1
 
-/* Support for fallocate was added in 2.6.23, on s390
-   only after 2.6.23-rc1.  */
-#define __ASSUME_FALLOCATE     1
-
 /* Support for various CLOEXEC and NONBLOCK flags was added in
    2.6.23.  */
 #define __ASSUME_O_CLOEXEC     1
index 36c7e40..8caee31 100644 (file)
    <http://www.gnu.org/licenses/>.  */
 
 #include <fcntl.h>
-#include <kernel-features.h>
 #include <sysdep.h>
 
 #define posix_fallocate static internal_fallocate
 #include <sysdeps/posix/posix_fallocate.c>
 #undef posix_fallocate
 
-/* The alpha architecture introduced the fallocate system call in
-   2.6.33-rc1, so we still need the fallback code.  */
-#if !defined __ASSUME_FALLOCATE && defined __NR_fallocate
-static int __have_fallocate;
-#endif
-
-
 /* Reserve storage for the data of the file associated with FD.  */
 int
 posix_fallocate (int fd, __off_t offset, __off_t len)
 {
-#ifdef __NR_fallocate
-# ifndef __ASSUME_FALLOCATE
-  if (__glibc_likely (__have_fallocate >= 0))
-# endif
-    {
-      INTERNAL_SYSCALL_DECL (err);
-# ifdef INTERNAL_SYSCALL_TYPES
-      int res = INTERNAL_SYSCALL_TYPES (fallocate, err, 4, int, fd,
-                                       int, 0, off_t, offset,
-                                       off_t, len);
-# else
-      int res = INTERNAL_SYSCALL (fallocate, err, 4, fd, 0, offset, len);
-# endif
+  INTERNAL_SYSCALL_DECL (err);
+#ifdef INTERNAL_SYSCALL_TYPES
+  int res = INTERNAL_SYSCALL_TYPES (fallocate, err, 4, int, fd,
+                                   int, 0, off_t, offset,
+                                   off_t, len);
+#else
+  int res = INTERNAL_SYSCALL (fallocate, err, 4, fd, 0, offset, len);
+#endif
 
-      if (! INTERNAL_SYSCALL_ERROR_P (res, err))
-       return 0;
+  if (! INTERNAL_SYSCALL_ERROR_P (res, err))
+    return 0;
 
-# ifndef __ASSUME_FALLOCATE
-      if (__glibc_unlikely (INTERNAL_SYSCALL_ERRNO (res, err) == ENOSYS))
-       __have_fallocate = -1;
-      else
-# endif
-       if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
-         return INTERNAL_SYSCALL_ERRNO (res, err);
-    }
-#endif
+  if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
+    return INTERNAL_SYSCALL_ERRNO (res, err);
 
   return internal_fallocate (fd, offset, len);
 }