The splice_to_file and __splice_to_file helpers with the various actors are everyting consumers need to implement splice properly, so stop exporting the low-level helpers that are used to implement these functions, or in two cases were they were so trivially remove the helpers entirely. Signed-off-by: Christoph Hellwig <hch@xxxxxx> --- fs/splice.c | 49 +++++++++--------------------------------------- include/linux/splice.h | 7 ------- 2 files changed, 9 insertions(+), 47 deletions(-) diff --git a/fs/splice.c b/fs/splice.c index 108e527..8627a85 100644 --- a/fs/splice.c +++ b/fs/splice.c @@ -812,8 +812,8 @@ static void wakeup_pipe_writers(struct pipe_inode_info *pipe) * locking is required around copying the pipe buffers to the * destination. */ -int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_desc *sd, - splice_actor *actor) +static int splice_from_pipe_feed(struct pipe_inode_info *pipe, + struct splice_desc *sd, splice_actor *actor) { int ret; @@ -859,7 +859,6 @@ int splice_from_pipe_feed(struct pipe_inode_info *pipe, struct splice_desc *sd, return 1; } -EXPORT_SYMBOL(splice_from_pipe_feed); /** * splice_from_pipe_next - wait for some data to splice from @@ -871,7 +870,8 @@ EXPORT_SYMBOL(splice_from_pipe_feed); * value (one) if pipe buffers are available. It will return zero * or -errno if no more data needs to be spliced. */ -int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd) +static int splice_from_pipe_next(struct pipe_inode_info *pipe, + struct splice_desc *sd) { while (!pipe->nrbufs) { if (!pipe->writers) @@ -896,40 +896,6 @@ int splice_from_pipe_next(struct pipe_inode_info *pipe, struct splice_desc *sd) return 1; } -EXPORT_SYMBOL(splice_from_pipe_next); - -/** - * splice_from_pipe_begin - start splicing from pipe - * @sd: information about the splice operation - * - * Description: - * This function should be called before a loop containing - * splice_from_pipe_next() and splice_from_pipe_feed() to - * initialize the necessary fields of @sd. - */ -void splice_from_pipe_begin(struct splice_desc *sd) -{ - sd->num_spliced = 0; - sd->need_wakeup = false; -} -EXPORT_SYMBOL(splice_from_pipe_begin); - -/** - * splice_from_pipe_end - finish splicing from pipe - * @pipe: pipe to splice from - * @sd: information about the splice operation - * - * Description: - * This function will wake up pipe writers if necessary. It should - * be called after a loop containing splice_from_pipe_next() and - * splice_from_pipe_feed(). - */ -void splice_from_pipe_end(struct pipe_inode_info *pipe, struct splice_desc *sd) -{ - if (sd->need_wakeup) - wakeup_pipe_writers(pipe); -} -EXPORT_SYMBOL(splice_from_pipe_end); /** * __splice_from_pipe - splice data from a pipe to given actor @@ -949,14 +915,17 @@ ssize_t __splice_from_pipe(struct pipe_inode_info *pipe, struct splice_desc *sd, { int ret; - splice_from_pipe_begin(sd); + sd->num_spliced = 0; + sd->need_wakeup = false; + do { ret = splice_from_pipe_next(pipe, sd); if (ret > 0) ret = splice_from_pipe_feed(pipe, sd, actor); } while (ret > 0); - splice_from_pipe_end(pipe, sd); + if (sd->need_wakeup) + wakeup_pipe_writers(pipe); return sd->num_spliced ? sd->num_spliced : ret; } EXPORT_SYMBOL(__splice_from_pipe); diff --git a/include/linux/splice.h b/include/linux/splice.h index c5aca88..0dabcc7 100644 --- a/include/linux/splice.h +++ b/include/linux/splice.h @@ -69,13 +69,6 @@ extern ssize_t splice_from_pipe(struct pipe_inode_info *, struct file *, splice_actor *); extern ssize_t __splice_from_pipe(struct pipe_inode_info *, struct splice_desc *, splice_actor *); -extern int splice_from_pipe_feed(struct pipe_inode_info *, struct splice_desc *, - splice_actor *); -extern int splice_from_pipe_next(struct pipe_inode_info *, - struct splice_desc *); -extern void splice_from_pipe_begin(struct splice_desc *); -extern void splice_from_pipe_end(struct pipe_inode_info *, - struct splice_desc *); extern int pipe_to_file(struct pipe_inode_info *, struct pipe_buffer *, struct splice_desc *); extern int __pipe_to_file(struct pipe_inode_info *, struct pipe_buffer *, -- 1.7.10.4 _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs