Re: [PATCH v5 4/7] fs/fuse: support compiling out splice
From: Pieter Smith
Date: Wed Nov 26 2014 - 02:44:44 EST
On Tue, Nov 25, 2014 at 08:42:42PM +0100, Pieter Smith wrote:
> On Tue, Nov 25, 2014 at 03:17:13PM +0100, Miklos Szeredi wrote:
> > [Trimming CC. Please do the same for other patches. I for one am not
> > interested in the general tinification discussion]
> >
> > On Tue, Nov 25, 2014 at 08:19:39AM +0100, Pieter Smith wrote:
> > > To implement splice support, fs/fuse makes use of nosteal_pipe_buf_ops. This
> > > struct is exported by fs/splice. The goal of the larger patch set is to
> > > completely compile out fs/splice, so uses of the exported struct need to be
> > > compiled out along with fs/splice.
> > >
> > > This patch therefore compiles out splice support in fs/fuse when
> > > CONFIG_SYSCALL_SPLICE is undefined.
> > >
> > > Signed-off-by: Pieter Smith <pieter@xxxxxxxxxx>
> > > ---
> > > fs/fuse/dev.c | 9 +++++++--
> > > 1 file changed, 7 insertions(+), 2 deletions(-)
> > >
> > > diff --git a/fs/fuse/dev.c b/fs/fuse/dev.c
> > > index ca88731..e984302 100644
> > > --- a/fs/fuse/dev.c
> > > +++ b/fs/fuse/dev.c
> > > @@ -1191,8 +1191,9 @@ __releases(fc->lock)
> > > * request_end(). Otherwise add it to the processing list, and set
> > > * the 'sent' flag.
> > > */
> > > -static ssize_t fuse_dev_do_read(struct fuse_conn *fc, struct file *file,
> > > - struct fuse_copy_state *cs, size_t nbytes)
> > > +static ssize_t __maybe_unused
> > > +fuse_dev_do_read(struct fuse_conn *fc, struct file *file,
> > > + struct fuse_copy_state *cs, size_t nbytes)
> >
> > fuse_dev_do_read() is definitely going to remain used. So no point in adding
> > __maybe_unused.
>
> Off course, but at least gcc now also is aware that this is intentional and
> nicely refrains from nagging you with a warning.
>
My apologies. My response was too hasty. You are right. This should not be
needed. I will revert this piece in v6 of this patch.
> > > {
> > > int err;
> > > struct fuse_req *req;
> > > @@ -1291,6 +1292,7 @@ static ssize_t fuse_dev_read(struct kiocb *iocb, const struct iovec *iov,
> > > return fuse_dev_do_read(fc, file, &cs, iov_length(iov, nr_segs));
> > > }
> > >
> > > +#ifdef CONFIG_SYSCALL_SPLICE
> > > static ssize_t fuse_dev_splice_read(struct file *in, loff_t *ppos,
> > > struct pipe_inode_info *pipe,
> > > size_t len, unsigned int flags)
> > > @@ -1368,6 +1370,9 @@ out:
> > > kfree(bufs);
> > > return ret;
> > > }
> > > +#else /* CONFIG_SYSCALL_SPLICE */
> > > +#define fuse_dev_splice_read NULL
> > > +#endif
> >
> > This looks fine.
> >
> > Thanks,
> > Miklos
> >
> > >
> > > static int fuse_notify_poll(struct fuse_conn *fc, unsigned int size,
> > > struct fuse_copy_state *cs)
> > > --
> > > 2.1.0
> > >
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/