aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoseph Myers <joseph@codesourcery.com>2016-03-17 12:15:51 +0000
committerJoseph Myers <joseph@codesourcery.com>2016-03-17 12:15:51 +0000
commit4674df40bbe2adf301fa47c8088fcb777048798b (patch)
tree951f7993908725baa9365fbd5cf13bdd8ce66d64
parent86ed888255bcafa7cd3c4eb248815b1ba4eb3699 (diff)
downloadglibc-4674df40bbe2adf301fa47c8088fcb777048798b.tar
glibc-4674df40bbe2adf301fa47c8088fcb777048798b.tar.gz
glibc-4674df40bbe2adf301fa47c8088fcb777048798b.tar.bz2
glibc-4674df40bbe2adf301fa47c8088fcb777048798b.zip
Remove __ASSUME_FALLOCATE.
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.
-rw-r--r--ChangeLog9
-rw-r--r--sysdeps/unix/sysv/linux/kernel-features.h4
-rw-r--r--sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c44
3 files changed, 21 insertions, 36 deletions
diff --git a/ChangeLog b/ChangeLog
index 1eb8bd868a..9b321ec51f 100644
--- 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
diff --git a/sysdeps/unix/sysv/linux/kernel-features.h b/sysdeps/unix/sysv/linux/kernel-features.h
index 4a7460e1be..51cd63c571 100644
--- a/sysdeps/unix/sysv/linux/kernel-features.h
+++ b/sysdeps/unix/sysv/linux/kernel-features.h
@@ -75,10 +75,6 @@
/* 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
diff --git a/sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c b/sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c
index 36c7e40e12..8caee318d5 100644
--- a/sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c
+++ b/sysdeps/unix/sysv/linux/wordsize-64/posix_fallocate.c
@@ -16,50 +16,30 @@
<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);
}