diff options
author | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 14:05:09 +0000 |
---|---|---|
committer | Joseph Myers <joseph@codesourcery.com> | 2017-05-09 14:05:09 +0000 |
commit | 695d7d138eda449678a1650a8b8b58181033353f (patch) | |
tree | 21808b08259cb3d73c1d3701adfbb98b0a4333a2 /sysdeps/unix/sysv/linux/setrlimit.c | |
parent | a972dc672c06845a024a0f98119dc3d9df0b9b77 (diff) | |
download | glibc-695d7d138eda449678a1650a8b8b58181033353f.tar glibc-695d7d138eda449678a1650a8b8b58181033353f.tar.gz glibc-695d7d138eda449678a1650a8b8b58181033353f.tar.bz2 glibc-695d7d138eda449678a1650a8b8b58181033353f.zip |
Assume prlimit64 is available.
This patch makes sysdeps/unix/sysv/linux code assume the prlimit64
syscall is always available, given the minimum of a 3.2 kernel.
__ASSUME_PRLIMIT64, which in fact was no longer used, is removed.
Code conditional on __NR_prlimit64 being defined is made
unconditional. Fallback code for the case where prlimit64 produces an
ENOSYS error is removed, substantially simplifying some functions.
Tested for x86_64 and x86.
* sysdeps/unix/sysv/linux/kernel-features.h (__ASSUME_PRLIMIT64):
Remove macro.
* sysdeps/unix/sysv/linux/getrlimit64.c (__getrlimit64): Assume
prlimit64 is always available and does not give an ENOSYS error.
* sysdeps/unix/sysv/linux/prlimit.c [__NR_prlimit64]: Make code
unconditional.
[!__NR_prlimit64]: Remove conditional code.
* sysdeps/unix/sysv/linux/setrlimit.c (__setrlimit): Assume
prlimit64 is always available and does not give an ENOSYS error.
* sysdeps/unix/sysv/linux/setrlimit64.c (__setrlimit64): Likewise.
Diffstat (limited to 'sysdeps/unix/sysv/linux/setrlimit.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/setrlimit.c | 7 |
1 files changed, 1 insertions, 6 deletions
diff --git a/sysdeps/unix/sysv/linux/setrlimit.c b/sysdeps/unix/sysv/linux/setrlimit.c index 01812ac355..8773c78236 100644 --- a/sysdeps/unix/sysv/linux/setrlimit.c +++ b/sysdeps/unix/sysv/linux/setrlimit.c @@ -34,7 +34,6 @@ int __setrlimit (enum __rlimit_resource resource, const struct rlimit *rlim) { -# ifdef __NR_prlimit64 struct rlimit64 rlim64; if (rlim->rlim_cur == RLIM_INFINITY) @@ -46,11 +45,7 @@ __setrlimit (enum __rlimit_resource resource, const struct rlimit *rlim) else rlim64.rlim_max = rlim->rlim_max; - int res = INLINE_SYSCALL_CALL (prlimit64, 0, resource, &rlim64, NULL); - if (res == 0 || errno != ENOSYS) - return res; -# endif - return INLINE_SYSCALL_CALL (setrlimit, resource, rlim); + return INLINE_SYSCALL_CALL (prlimit64, 0, resource, &rlim64, NULL); } # if SHLIB_COMPAT (libc, GLIBC_2_0, GLIBC_2_2) |