mirror of
https://sourceware.org/git/glibc.git
synced 2025-07-30 22:43:12 +03:00
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.
This commit is contained in:
@ -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>
|
2016-03-16 H.J. Lu <hongjiu.lu@intel.com>
|
||||||
|
|
||||||
* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
|
* sysdeps/x86_64/fpu/multiarch/svml_d_cos2_core_sse4.S
|
||||||
|
@ -75,10 +75,6 @@
|
|||||||
/* Support for private futexes was added in 2.6.22. */
|
/* Support for private futexes was added in 2.6.22. */
|
||||||
#define __ASSUME_PRIVATE_FUTEX 1
|
#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
|
/* Support for various CLOEXEC and NONBLOCK flags was added in
|
||||||
2.6.23. */
|
2.6.23. */
|
||||||
#define __ASSUME_O_CLOEXEC 1
|
#define __ASSUME_O_CLOEXEC 1
|
||||||
|
@ -16,51 +16,31 @@
|
|||||||
<http://www.gnu.org/licenses/>. */
|
<http://www.gnu.org/licenses/>. */
|
||||||
|
|
||||||
#include <fcntl.h>
|
#include <fcntl.h>
|
||||||
#include <kernel-features.h>
|
|
||||||
#include <sysdep.h>
|
#include <sysdep.h>
|
||||||
|
|
||||||
#define posix_fallocate static internal_fallocate
|
#define posix_fallocate static internal_fallocate
|
||||||
#include <sysdeps/posix/posix_fallocate.c>
|
#include <sysdeps/posix/posix_fallocate.c>
|
||||||
#undef posix_fallocate
|
#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. */
|
/* Reserve storage for the data of the file associated with FD. */
|
||||||
int
|
int
|
||||||
posix_fallocate (int fd, __off_t offset, __off_t len)
|
posix_fallocate (int fd, __off_t offset, __off_t len)
|
||||||
{
|
{
|
||||||
#ifdef __NR_fallocate
|
INTERNAL_SYSCALL_DECL (err);
|
||||||
# ifndef __ASSUME_FALLOCATE
|
#ifdef INTERNAL_SYSCALL_TYPES
|
||||||
if (__glibc_likely (__have_fallocate >= 0))
|
int res = INTERNAL_SYSCALL_TYPES (fallocate, err, 4, int, fd,
|
||||||
# endif
|
int, 0, off_t, offset,
|
||||||
{
|
off_t, len);
|
||||||
INTERNAL_SYSCALL_DECL (err);
|
#else
|
||||||
# ifdef INTERNAL_SYSCALL_TYPES
|
int res = INTERNAL_SYSCALL (fallocate, err, 4, fd, 0, offset, len);
|
||||||
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;
|
|
||||||
|
|
||||||
# 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
|
#endif
|
||||||
|
|
||||||
|
if (! INTERNAL_SYSCALL_ERROR_P (res, err))
|
||||||
|
return 0;
|
||||||
|
|
||||||
|
if (INTERNAL_SYSCALL_ERRNO (res, err) != EOPNOTSUPP)
|
||||||
|
return INTERNAL_SYSCALL_ERRNO (res, err);
|
||||||
|
|
||||||
return internal_fallocate (fd, offset, len);
|
return internal_fallocate (fd, offset, len);
|
||||||
}
|
}
|
||||||
weak_alias (posix_fallocate, posix_fallocate64)
|
weak_alias (posix_fallocate, posix_fallocate64)
|
||||||
|
Reference in New Issue
Block a user