diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/setrlimit64.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/setrlimit64.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/sysdeps/unix/sysv/linux/setrlimit64.c b/sysdeps/unix/sysv/linux/setrlimit64.c index 17f95cbdfc..1989af6fd5 100644 --- a/sysdeps/unix/sysv/linux/setrlimit64.c +++ b/sysdeps/unix/sysv/linux/setrlimit64.c @@ -30,11 +30,15 @@ setrlimit64 (resource, rlimits) const struct rlimit64 *rlimits; { #ifdef __ASSUME_PRLIMIT64 - return INLINE_SYSCALL (prlimit64, 4, 0, resource, rlimits, NULL); + return INLINE_SYSCALL_RETURN (prlimit64, 4, int, 0, resource, + rlimits, NULL); #else # ifdef __NR_prlimit64 - int res = INLINE_SYSCALL (prlimit64, 4, 0, resource, rlimits, NULL); - if (res == 0 || errno != ENOSYS) + INTERNAL_SYSCALL_DECL (err); + int res = INTERNAL_SYSCALL (prlimit64, err, 4, 0, resource, rlimits, + NULL); + if (!__glibc_unlikely (INTERNAL_SYSCALL_ERROR_P (res, err)) + || INTERNAL_SYSCALL_ERRNO (res, err) != ENOSYS) return res; # endif struct rlimit rlimits32; |