2013-10-08 12:38:32

by Christian Ruppert

[permalink] [raw]
Subject: [PATCH] Export symbols for splice in modules

The symbols splice_to_pipe, splice_grow_spd and splice_shrink_spd are not
currently exported from the kernel. This prevents the implementation of
drivers using splice in modules not statically linked with the kernel. This
patch exports those symbols to make it possible to implement splice in
kernel modules.

Signed-off-by: Christian Ruppert <[email protected]>
---
fs/splice.c | 3 +++
1 files changed, 3 insertions(+), 0 deletions(-)

diff --git a/fs/splice.c b/fs/splice.c
index 3b7ee65..28e19b7 100644
--- a/fs/splice.c
+++ b/fs/splice.c
@@ -265,6 +265,7 @@ ssize_t splice_to_pipe(struct pipe_inode_info *pipe,

return ret;
}
+EXPORT_SYMBOL(splice_to_pipe);

void spd_release_page(struct splice_pipe_desc *spd, unsigned int i)
{
@@ -293,6 +294,7 @@ int splice_grow_spd(const struct pipe_inode_info *pipe, struct splice_pipe_desc
kfree(spd->partial);
return -ENOMEM;
}
+EXPORT_SYMBOL(splice_grow_spd);

void splice_shrink_spd(struct splice_pipe_desc *spd)
{
@@ -302,6 +304,7 @@ void splice_shrink_spd(struct splice_pipe_desc *spd)
kfree(spd->pages);
kfree(spd->partial);
}
+EXPORT_SYMBOL(splice_shrink_spd);

static int
__generic_file_splice_read(struct file *in, loff_t *ppos,
--
1.7.1


2013-10-08 12:52:38

by Christoph Hellwig

[permalink] [raw]
Subject: Re: [PATCH] Export symbols for splice in modules

On Tue, Oct 08, 2013 at 02:38:18PM +0200, Christian Ruppert wrote:
> The symbols splice_to_pipe, splice_grow_spd and splice_shrink_spd are not
> currently exported from the kernel. This prevents the implementation of
> drivers using splice in modules not statically linked with the kernel. This
> patch exports those symbols to make it possible to implement splice in
> kernel modules.

Please submit these together with your drivers. In general it seems
a higher level interface should be exported anyway.

2013-10-08 13:10:23

by Christian Ruppert

[permalink] [raw]
Subject: Re: [PATCH] Export symbols for splice in modules

On Tue, Oct 08, 2013 at 05:52:29AM -0700, Christoph Hellwig wrote:
> On Tue, Oct 08, 2013 at 02:38:18PM +0200, Christian Ruppert wrote:
> > The symbols splice_to_pipe, splice_grow_spd and splice_shrink_spd are not
> > currently exported from the kernel. This prevents the implementation of
> > drivers using splice in modules not statically linked with the kernel. This
> > patch exports those symbols to make it possible to implement splice in
> > kernel modules.
>
> Please submit these together with your drivers. In general it seems
> a higher level interface should be exported anyway.

Unluckily, the drivers are currently distributed as out-of-tree modules.
We thought this patch might be useful anyway but if you prefer we can
also resubmit it the moment we decide to upstream the drivers.

Greetings,
Christian