diff options
Diffstat (limited to 'sysdeps/unix/sysv/linux/lxstat64.c')
-rw-r--r-- | sysdeps/unix/sysv/linux/lxstat64.c | 47 |
1 files changed, 4 insertions, 43 deletions
diff --git a/sysdeps/unix/sysv/linux/lxstat64.c b/sysdeps/unix/sysv/linux/lxstat64.c index c6920b47cc..765b195c6c 100644 --- a/sysdeps/unix/sysv/linux/lxstat64.c +++ b/sysdeps/unix/sysv/linux/lxstat64.c @@ -1,5 +1,5 @@ -/* lxstat64 using old-style Unix lstat system call. - Copyright (C) 1997-2002,2003,2006 Free Software Foundation, Inc. +/* lxstat64 using Linux lstat64 system call. + Copyright (C) 1997-2012 Free Software Foundation, Inc. This file is part of the GNU C Library. The GNU C Library is free software; you can redistribute it and/or @@ -27,56 +27,17 @@ #include <kernel-features.h> -#if __ASSUME_STAT64_SYSCALL == 0 -# include <xstatconv.h> -#endif - -#ifdef __NR_lstat64 -# if __ASSUME_STAT64_SYSCALL == 0 -/* The variable is shared between all wrappers around *stat64 calls. */ -extern int __have_no_stat64; -# endif -#endif - /* Get information about the file NAME in BUF. */ int ___lxstat64 (int vers, const char *name, struct stat64 *buf) { int result; -#ifdef __ASSUME_STAT64_SYSCALL result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf)); -# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 +#if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 if (__builtin_expect (!result, 1) && buf->__st_ino != (__ino_t) buf->st_ino) buf->st_ino = buf->__st_ino; -# endif - return result; -#else - struct kernel_stat kbuf; -# ifdef __NR_lstat64 - if (! __have_no_stat64) - { - int saved_errno = errno; - result = INLINE_SYSCALL (lstat64, 2, CHECK_STRING (name), CHECK_1 (buf)); - - if (result != -1 || errno != ENOSYS) - { -# if defined _HAVE_STAT64___ST_INO && __ASSUME_ST_INO_64_BIT == 0 - if (!result && buf->__st_ino != (__ino_t) buf->st_ino) - buf->st_ino = buf->__st_ino; -# endif - return result; - } - - __set_errno (saved_errno); - __have_no_stat64 = 1; - } -# endif - result = INLINE_SYSCALL (lstat, 2, CHECK_STRING (name), __ptrvalue (&kbuf)); - if (result == 0) - result = __xstat64_conv (vers, &kbuf, buf); - - return result; #endif + return result; } #include <shlib-compat.h> |