[Virtio-fs] [PATCH] virtiofsd: make FUSE_REMOVEMAPPING support multiple entries

Miklos Szeredi mszeredi at redhat.com
Wed May 22 11:31:56 UTC 2019


On Wed, May 22, 2019 at 1:27 PM Dr. David Alan Gilbert
<dgilbert at redhat.com> wrote:
>
> * Peng Tao (tao.peng at linux.alibaba.com) wrote:
> > The fuse wire protocol is changed so that we can unmap multiple
> > mappings in a single call.
> >
> > Signed-off-by: Peng Tao <tao.peng at linux.alibaba.com>
>
> Hi,
>   Thanks for the patch and apologies for not responding sooner
>
> > ---
> >  contrib/virtiofsd/fuse_kernel.h    |  9 +++++++--
> >  contrib/virtiofsd/fuse_lowlevel.c  | 21 ++++++++++++++------
> >  contrib/virtiofsd/fuse_lowlevel.h  |  5 +++--
> >  contrib/virtiofsd/passthrough_ll.c | 31 ++++++++++++++++++++----------
> >  4 files changed, 46 insertions(+), 20 deletions(-)
> >
> > diff --git a/contrib/virtiofsd/fuse_kernel.h b/contrib/virtiofsd/fuse_kernel.h
> > index ce46046a4f..093cacff02 100644
> > --- a/contrib/virtiofsd/fuse_kernel.h
> > +++ b/contrib/virtiofsd/fuse_kernel.h
> > @@ -830,9 +830,14 @@ struct fuse_setupmapping_out {
> >          uint64_t        len[FUSE_SETUPMAPPING_ENTRIES];
> >  };
> >
> > -struct fuse_removemapping_in {
> > +struct fuse_removemapping_in_header {
> >          /* An already open handle */
> > -     uint64_t        fh;
> > +        uint64_t        fh;
> > +        /* number of fuse_removemapping_in follows */
> > +        unsigned        num;
>
> I think all fields in fuse structures are fixed length - e.g. uint32_t
> or uint64_t.
>
> > +};
> > +
> > +struct fuse_removemapping_in {
> >          /* Offset into the dax to start the unmapping */
> >          uint64_t        moffset;
> >          /* Length of mapping required */
>
> Miklos: Does this make sense for a fuse structure? It's that header
> followed by 'num' of fuse_removemapping_in.

There's one example of that already: fuse_batch_forget_in followed by
'count' number of fuse_forget_one.

Thanks,
Miklos




More information about the Virtio-fs mailing list