diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/i386')
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/fxstat.c | 13 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/lxstat.c | 13 | ||||
-rw-r--r-- | sysdeps/unix/sysv/linux/i386/xstat.c | 13 |
3 files changed, 27 insertions, 12 deletions
diff --git a/sysdeps/unix/sysv/linux/i386/fxstat.c b/sysdeps/unix/sysv/linux/i386/fxstat.c index 532341d284..2f48dc2c9b 100644 --- a/sysdeps/unix/sysv/linux/i386/fxstat.c +++ b/sysdeps/unix/sysv/linux/i386/fxstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -53,10 +54,14 @@ __fxstat (int vers, int fd, struct stat *buf) return INLINE_SYSCALL (fstat, 2, fd, (struct kernel_stat *) buf); } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (fstat64, 2, fd, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (fstat64, 2, fd, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 diff --git a/sysdeps/unix/sysv/linux/i386/lxstat.c b/sysdeps/unix/sysv/linux/i386/lxstat.c index fa5b463362..f40bc2bc5f 100644 --- a/sysdeps/unix/sysv/linux/i386/lxstat.c +++ b/sysdeps/unix/sysv/linux/i386/lxstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -55,10 +56,14 @@ __lxstat (int vers, const char *name, struct stat *buf) } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (lstat64, 2, name, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (lstat64, 2, name, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 diff --git a/sysdeps/unix/sysv/linux/i386/xstat.c b/sysdeps/unix/sysv/linux/i386/xstat.c index c879960a58..7dd83550de 100644 --- a/sysdeps/unix/sysv/linux/i386/xstat.c +++ b/sysdeps/unix/sysv/linux/i386/xstat.c @@ -28,6 +28,7 @@ #include <sysdep.h> #include <sys/syscall.h> +#include "kernel-features.h" #include <xstatconv.c> @@ -54,10 +55,14 @@ __xstat (int vers, const char *name, struct stat *buf) return INLINE_SYSCALL (stat, 2, name, (struct kernel_stat *) buf); } #if __ASSUME_STAT64_SYSCALL > 0 - result = INLINE_SYSCALL (stat64, 2, name, &buf64); - if (result == 0) - result = xstat32_conv (vers, &buf64, buf); - return result; + { + struct stat64 buf64; + + result = INLINE_SYSCALL (stat64, 2, name, &buf64); + if (result == 0) + result = xstat32_conv (vers, &buf64, buf); + return result; + } #else # if defined __NR_stat64 /* To support 32 bit UIDs, we have to use stat64. The normal stat call only returns |