diff options
author | Jens Axboe <axboe@suse.de> | 2006-03-30 15:16:46 +0200 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-30 22:28:18 +0200 |
commit | 5abc97aa25b2c41413b3a520faee83f2282d9f18 (patch) | |
tree | 4ba13ae0e91f15d02986df7cdca5e9455212d7d4 /fs/pipe.c | |
parent | [PATCH] Introduce sys_splice() system call (diff) | |
download | linux-5abc97aa25b2c41413b3a520faee83f2282d9f18.tar.xz linux-5abc97aa25b2c41413b3a520faee83f2282d9f18.zip |
[PATCH] splice: add support for SPLICE_F_MOVE flag
This enables the caller to migrate pages from one address space page
cache to another. In buzz word marketing, you can do zero-copy file
copies!
Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'fs/pipe.c')
-rw-r--r-- | fs/pipe.c | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/fs/pipe.c b/fs/pipe.c index 2414bf270db6..109a102c150d 100644 --- a/fs/pipe.c +++ b/fs/pipe.c @@ -121,11 +121,19 @@ static void anon_pipe_buf_unmap(struct pipe_inode_info *info, struct pipe_buffer kunmap(buf->page); } +static int anon_pipe_buf_steal(struct pipe_inode_info *info, + struct pipe_buffer *buf) +{ + buf->stolen = 1; + return 0; +} + static struct pipe_buf_operations anon_pipe_buf_ops = { .can_merge = 1, .map = anon_pipe_buf_map, .unmap = anon_pipe_buf_unmap, .release = anon_pipe_buf_release, + .steal = anon_pipe_buf_steal, }; static ssize_t |