28 Apr, 2006

1 commit

  • Wire up *at syscalls.

    This patch has been tested on ppc64 (using glibc's testsuite, both 32bit
    and 64bit), and compile-tested for ppc32 (I have currently no ppc32 system
    available, but I expect no problems).

    Signed-off-by: Andreas Schwab
    Signed-off-by: Paul Mackerras

    Andreas Schwab
     

12 Feb, 2006

1 commit

  • 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
    Cc: Christoph Hellwig
    Cc: Andi Kleen
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

19 Jan, 2006

1 commit

  • Here is a series of patches which introduce in total 13 new system calls
    which take a file descriptor/filename pair instead of a single file
    name. These functions, openat etc, have been discussed on numerous
    occasions. They are needed to implement race-free filesystem traversal,
    they are necessary to implement a virtual per-thread current working
    directory (think multi-threaded backup software), etc.

    We have in glibc today implementations of the interfaces which use the
    /proc/self/fd magic. But this code is rather expensive. Here are some
    results (similar to what Jim Meyering posted before).

    The test creates a deep directory hierarchy on a tmpfs filesystem. Then
    rm -fr is used to remove all directories. Without syscall support I get
    this:

    real 0m31.921s
    user 0m0.688s
    sys 0m31.234s

    With syscall support the results are much better:

    real 0m20.699s
    user 0m0.536s
    sys 0m20.149s

    The interfaces are for obvious reasons currently not much used. But they'll
    be used. coreutils (and Jeff's posixutils) are already using them.
    Furthermore, code like ftw/fts in libc (maybe even glob) will also start using
    them. I expect a patch to make follow soon. Every program which is walking
    the filesystem tree will benefit.

    Signed-off-by: Ulrich Drepper
    Signed-off-by: Alexey Dobriyan
    Cc: Christoph Hellwig
    Cc: Al Viro
    Acked-by: Ingo Molnar
    Cc: Michael Kerrisk
    Signed-off-by: Andrew Morton
    Signed-off-by: Linus Torvalds

    Ulrich Drepper
     

17 Apr, 2005

1 commit

  • Initial git repository build. I'm not bothering with the full history,
    even though we have it. We can create a separate "historical" git
    archive of that later if we want to, and in the meantime it's about
    3.2GB when imported into git - space that would just make the early
    git days unnecessarily complicated, when we don't have a lot of good
    infrastructure for it.

    Let it rip!

    Linus Torvalds