[PATCH] Introduce sys_splice() system call
authorJens Axboe <axboe@suse.de>
Thu, 30 Mar 2006 13:15:30 +0000 (15:15 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Thu, 30 Mar 2006 20:28:18 +0000 (12:28 -0800)
commit5274f052e7b3dbd81935772eb551dfd0325dfa9d
treec79f813ec513660edb6f1e4a75cb366c6b84f53f
parent5d4fe2c1ce83c3e967ccc1ba3d580c1a5603a866
[PATCH] Introduce sys_splice() system call

This adds support for the sys_splice system call. Using a pipe as a
transport, it can connect to files or sockets (latter as output only).

From the splice.c comments:

   "splice": joining two ropes together by interweaving their strands.

   This is the "extended pipe" functionality, where a pipe is used as
   an arbitrary in-memory buffer. Think of a pipe as a small kernel
   buffer that you can use to transfer data from one end to the other.

   The traditional unix read/write is extended with a "splice()" operation
   that transfers data buffers to or from a pipe buffer.

   Named by Larry McVoy, original implementation from Linus, extended by
   Jens to support splicing to files and fixing the initial implementation
   bugs.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
15 files changed:
arch/i386/kernel/syscall_table.S
arch/ia64/kernel/entry.S
fs/Makefile
fs/ext2/file.c
fs/ext3/file.c
fs/pipe.c
fs/reiserfs/file.c
fs/splice.c [new file with mode: 0644]
include/asm-i386/unistd.h
include/asm-ia64/unistd.h
include/asm-powerpc/unistd.h
include/asm-x86_64/unistd.h
include/linux/fs.h
include/linux/syscalls.h
net/socket.c