Re: [PATCH v4 15/16] virtio-fs: add virtiofs filesystem

From: Michael S. Tsirkin
Date: Wed Sep 04 2019 - 14:58:51 EST


On Wed, Sep 04, 2019 at 07:16:30PM +0100, Stefan Hajnoczi wrote:
> On Tue, Sep 03, 2019 at 09:55:49AM -0400, Michael S. Tsirkin wrote:
> > On Tue, Sep 03, 2019 at 01:42:02PM +0200, Miklos Szeredi wrote:
> > Endian-ness for fuse header also looks wrong.
> [...]
> > > +struct virtio_fs_forget {
> > > + struct fuse_in_header ih;
> > > + struct fuse_forget_in arg;
> >
> > These structures are all native endian.
> >
> > Passing them to host will make cross-endian setups painful to support,
> > and hardware implementations impossible.
> >
> > How about converting everything to LE?
>
> The driver dictates the endianness of the FUSE protocol session. The
> virtio-fs device specification states that the device looks at the first
> request's fuse_in_header::opcode field to detect the guest endianness.
>
> If it sees FUSE_INIT in its native endianness then no byte-swapping is
> necessary. If it sees FUSE_INIT in the opposite endianness then
> byte-swapping is necessary on the device side.


You are right. Pls ignore the comment. We need to reserve the
byte-swapped FUSE_INIT to make sure future versions of fuse don't try to
send that though. I sent a patch to that effect, let's see whether it
gets accepted.


--
MST