aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMark Fasheh <mark.fasheh@oracle.com>2007-03-21 08:11:02 -0400
committerJens Axboe <jens.axboe@oracle.com>2007-03-27 02:55:47 -0400
commit40bee44eaef91b6030037c8bb47f909181fb1edc (patch)
tree3a11cb3bdc0bd385fddd74bc3e5a871be22bfbf1
parent08c72591636829d40bd695d43ec6d2a8191b668b (diff)
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.c7
-rw-r--r--include/linux/pipe_fs_i.h4
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:
651 * key here is the 'actor' worker passed in that actually moves the data 651 * key here is the 'actor' worker passed in that actually moves the data
652 * to the wanted destination. See pipe_to_file/pipe_to_sendpage above. 652 * to the wanted destination. See pipe_to_file/pipe_to_sendpage above.
653 */ 653 */
654static ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, 654ssize_t __splice_from_pipe(struct pipe_inode_info *pipe,
655 struct file *out, loff_t *ppos, size_t len, 655 struct file *out, loff_t *ppos, size_t len,
656 unsigned int flags, splice_actor *actor) 656 unsigned int flags, splice_actor *actor)
657{ 657{
658 int ret, do_wakeup, err; 658 int ret, do_wakeup, err;
659 struct splice_desc sd; 659 struct splice_desc sd;
@@ -747,6 +747,7 @@ static ssize_t __splice_from_pipe(struct pipe_inode_info *pipe,
747 747
748 return ret; 748 return ret;
749} 749}
750EXPORT_SYMBOL(__splice_from_pipe);
750 751
751ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out, 752ssize_t splice_from_pipe(struct pipe_inode_info *pipe, struct file *out,
752 loff_t *ppos, size_t len, unsigned int flags, 753 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 *,
99 loff_t *, size_t, unsigned int, 99 loff_t *, size_t, unsigned int,
100 splice_actor *); 100 splice_actor *);
101 101
102extern ssize_t __splice_from_pipe(struct pipe_inode_info *, struct file *,
103 loff_t *, size_t, unsigned int,
104 splice_actor *);
105
102#endif 106#endif