diff options
author | Mark Fasheh <mark.fasheh@oracle.com> | 2007-03-21 13:11:02 +0100 |
---|---|---|
committer | Jens Axboe <jens.axboe@oracle.com> | 2007-03-27 08:55:47 +0200 |
commit | 40bee44eaef91b6030037c8bb47f909181fb1edc (patch) | |
tree | 3a11cb3bdc0bd385fddd74bc3e5a871be22bfbf1 | |
parent | 08c72591636829d40bd695d43ec6d2a8191b668b (diff) | |
download | lwn-40bee44eaef91b6030037c8bb47f909181fb1edc.tar.gz lwn-40bee44eaef91b6030037c8bb47f909181fb1edc.zip |
Export __splice_from_pipe()
Ocfs2 wants to implement it's own splice write actor so that it can better
manage cluster / page locks. This lets us re-use the rest of splice write
while only providing our own code where it's actually important.
Signed-off-by: Mark Fasheh <mark.fasheh@oracle.com>
Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
-rw-r--r-- | fs/splice.c | 7 | ||||
-rw-r--r-- | include/linux/pipe_fs_i.h | 4 |
2 files changed, 8 insertions, 3 deletions
diff --git a/fs/splice.c b/fs/splice.c index ae50208e3e6c..07f6556add0a 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -651,9 +651,9 @@ out_ret: * key here is the 'actor' worker passed in that actually moves the data * to the wanted destination. See pipe_to_file/pipe_to_sendpage above. */ -static ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, - struct file *out, loff_t *ppos, size_t len, - unsigned int flags, splice_actor *actor) +ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, + struct file *out, loff_t *ppos, size_t len, + unsigned int flags, splice_actor *actor) { int ret, do_wakeup, err; struct splice_desc sd; @@ -747,6 +747,7 @@ static ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, return ret; } +EXPORT_SYMBOL(__splice_from_pipe); ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out, loff_t *ppos, size_t len, unsigned int flags, diff --git a/include/linux/pipe_fs_i.h b/include/linux/pipe_fs_i.h index 2e19478e9e84..8bcbc54e1b48 100644 --- a/include/linux/pipe_fs_i.h +++ b/include/linux/pipe_fs_i.h @@ -99,4 +99,8 @@ extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, loff_t *, size_t, unsigned int, splice_actor *); +extern ssize_t __splice_from_pipe(struct pipe_inode_info *, struct file *, + loff_t *, size_t, unsigned int, + splice_actor *); + #endif |