linux-xiaomi-chiron/include
Ulrich Drepper 5590ff0d55 [PATCH] vfs: *at functions: core
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 <drepper@redhat.com>
Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Al Viro <viro@ftp.linux.org.uk>
Acked-by: Ingo Molnar <mingo@elte.hu>
Cc: Michael Kerrisk <mtk-manpages@gmx.net>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-01-18 19:20:29 -08:00
..
acpi [ACPI] increase owner_id limit to 64 from 32 2005-12-21 04:52:16 -05:00
asm-alpha [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-arm Merge master.kernel.org:/pub/scm/linux/kernel/git/tmlind/linux-omap-upstream 2006-01-18 22:56:29 +00:00
asm-arm26 [PATCH] arm26: add L1_CACHE_SHIFT 2006-01-16 23:15:26 -08:00
asm-cris [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-frv [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-generic [PATCH] Use atomic64_set for 64-bit case of atomic_long_set 2006-01-15 10:17:07 -08:00
asm-h8300 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-i386 [PATCH] uml: remove leftover from patch revertal 2006-01-18 19:20:20 -08:00
asm-ia64 Pull perfmon-montecito into release branch 2006-01-16 20:02:24 -08:00
asm-m32r [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-m68k [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-m68knommu [PATCH] m68k: kill mach_floppy_setup, convert to proper __setup() in drivers 2006-01-12 09:09:05 -08:00
asm-mips [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-parisc [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-powerpc [PATCH] Fix sparse parse error in lppaca.h 2006-01-17 17:18:25 -08:00
asm-ppc [PATCH] ppc: Remove powermac support from ARCH=ppc 2006-01-15 17:30:44 +11:00
asm-s390 [PATCH] s390: email-address change 2006-01-14 18:27:10 -08:00
asm-sh [PATCH] sh: Simple timer framework 2006-01-16 23:15:28 -08:00
asm-sh64 [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-sparc [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
asm-sparc64 [SPARC64]: Serial Console for E250 Patch 2006-01-18 14:54:31 -08:00
asm-um [PATCH] uml: add __raw_writel definition 2006-01-18 19:20:18 -08:00
asm-v850 Fix "stuct", "strut", "struc" typos 2006-01-15 02:12:54 +01:00
asm-x86_64 [PATCH] x86_64: Fix VSMP build 2006-01-16 23:18:35 -08:00
asm-xtensa [PATCH] death of get_thread_info/put_thread_info 2006-01-12 09:08:59 -08:00
keys [PATCH] Keys: Remove key duplication 2006-01-06 08:33:29 -08:00
linux [PATCH] vfs: *at functions: core 2006-01-18 19:20:29 -08:00
math-emu
media V4L/DVB (3388): tuner_params->tda988x is currently unused, so disable 2006-01-15 21:28:17 -02:00
mtd [MTD] user-abi: Clean up trailing white spaces 2005-11-07 14:43:11 +01:00
net [PATCH] hostap: don't #include C files in hostap_main.c 2006-01-16 16:51:54 -05:00
pcmcia [PATCH] pcmcia: unify attach, EVENT_CARD_INSERTION handlers into one probe callback 2006-01-06 00:03:24 +01:00
rdma IB: Add node_guid to struct ib_device 2006-01-10 07:39:34 -08:00
rxrpc [PATCH] gfp flags annotations - part 1 2005-10-08 15:00:57 -07:00
scsi [PATCH] scsi_transport_spi build fix 2006-01-18 19:20:16 -08:00
sound [PATCH] DocBook: fix kernel-doc comments 2006-01-10 08:01:53 -08:00
video [PATCH] include/video/newport.h: "extern inline" -> "static inline" 2006-01-10 08:01:50 -08:00