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
|