summaryrefslogtreecommitdiff
path: root/include/linux/splice.h
diff options
context:
space:
mode:
authorAndrew Morton <akpm@linux-foundation.org>2023-06-30 08:41:39 -0700
committerAndrew Morton <akpm@linux-foundation.org>2023-06-30 08:41:39 -0700
commit44f10dbefd5e41b3385af91f855a57aa2afaf40e (patch)
tree944c9f1cda8322691468e6f10dc5b0d41c487621 /include/linux/splice.h
parent0a30901b0732a59e038088d3de3e5611db1870d3 (diff)
parente55e5df193d247a38a5e1ac65a5316a0adcc22fa (diff)
Merge branch 'master' into mm-hotfixes-stable
Diffstat (limited to 'include/linux/splice.h')
-rw-r--r--include/linux/splice.h6
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/splice.h b/include/linux/splice.h
index a55179fd60fc..6c461573434d 100644
--- a/include/linux/splice.h
+++ b/include/linux/splice.h
@@ -38,6 +38,7 @@ struct splice_desc {
struct file *file; /* file to read/write */
void *data; /* cookie */
} u;
+ void (*splice_eof)(struct splice_desc *sd); /* Unexpected EOF handler */
loff_t pos; /* file position */
loff_t *opos; /* sendfile: output position */
size_t num_spliced; /* number of bytes already spliced */
@@ -76,6 +77,9 @@ extern ssize_t splice_to_pipe(struct pipe_inode_info *,
struct splice_pipe_desc *);
extern ssize_t add_to_pipe(struct pipe_inode_info *,
struct pipe_buffer *);
+long vfs_splice_read(struct file *in, loff_t *ppos,
+ struct pipe_inode_info *pipe, size_t len,
+ unsigned int flags);
extern ssize_t splice_direct_to_actor(struct file *, struct splice_desc *,
splice_direct_actor *);
extern long do_splice(struct file *in, loff_t *off_in,
@@ -84,6 +88,8 @@ extern long do_splice(struct file *in, loff_t *off_in,
extern long do_tee(struct file *in, struct file *out, size_t len,
unsigned int flags);
+extern ssize_t splice_to_socket(struct pipe_inode_info *pipe, struct file *out,
+ loff_t *ppos, size_t len, unsigned int flags);
/*
* for dynamic pipe sizing