[PATCH] fstatat64 support
authorUlrich Drepper <drepper@redhat.com>
Sun, 12 Feb 2006 01:55:47 +0000 (17:55 -0800)
committerLinus Torvalds <torvalds@g5.osdl.org>
Sun, 12 Feb 2006 05:41:10 +0000 (21:41 -0800)
commitcff2b760096d1e6feaa31948e7af4abbefe47822
tree9bd6d2796ffb8c6611ca06b74c6349f8f1289ce2
parent25bf368b3d98668c5d5f38e2201d8bca16e52680
[PATCH] fstatat64 support

The *at patches introduced fstatat and, due to inusfficient research, I
used the newfstat functions generally as the guideline.  The result is that
on 32-bit platforms we don't have all the information needed to implement
fstatat64.

This patch modifies the code to pass up 64-bit information if
__ARCH_WANT_STAT64 is defined.  I renamed the syscall entry point to make
this clear.  Other archs will continue to use the existing code.  On x86-64
the compat code is implemented using a new sys32_ function.  this is what
is done for the other stat syscalls as well.

This patch might break some other archs (those which define
__ARCH_WANT_STAT64 and which already wired up the syscall).  Yet others
might need changes to accomodate the compatibility mode.  I really don't
want to do that work because all this stat handling is a mess (more so in
glibc, but the kernel is also affected).  It should be done by the arch
maintainers.  I'll provide some stand-alone test shortly.  Those who are
eager could compile glibc and run 'make check' (no installation needed).

The patch below has been tested on x86 and x86-64.

Signed-off-by: Ulrich Drepper <drepper@redhat.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
arch/i386/kernel/syscall_table.S
arch/x86_64/ia32/ia32entry.S
arch/x86_64/ia32/sys_ia32.c
fs/stat.c
include/asm-i386/unistd.h
include/asm-x86_64/ia32_unistd.h
include/linux/syscalls.h