Re: [PATCH] fstests: Add 9p network filesystem support

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



Hi Eryu,

On Mon, 2017-12-18 at 22:12 +0800, Eryu Guan wrote:
> On Tue, Dec 12, 2017 at 07:11:54PM +0200, Tuomas Tynkkynen wrote:
> > This commit adds support for the 9p network file system, which is
> > mainly
> > used by QEMU for sharing a file system from the host to the guest
> > VM.
> > 
> > To run xfstests on it, launch QEMU with e.g.:
> > 
> > -virtfs local,path=$TMPDIR/p9-test,security_model=mapped-
> > xattr,mount_tag=p9-test
> > -virtfs local,path=$TMPDIR/p9-scratch,security_model=mapped-
> > xattr,mount_tag=p9-scratch
> > 
> > and inside the VM run xfstests with:
> > 
> > export TEST_DEV=p9-test
> > export SCRATCH_DEV=p9-scratch
> > export MOUNT_OPTIONS="-o
> > trans=virtio,version=9p2000.L,cache=loose,posixacl"
> > export TEST_FS_MOUNT_OPTS="$MOUNT_OPTIONS"
> 
> We can take 9P_MOUNT_OPTIONS as the default value for both
> MOUNT_OPTIONS
> and TEST_FS_MOUNT_OPTS in common/config, similar to
> CIFS_MOUNT_OPTIONS
> etc.
> 

Ok, will add in next version.

> > 
> > Signed-off-by: Tuomas Tynkkynen <tuomas@xxxxxxxxxx>
> 
> This looks fine to me overall. I did a 'quick' group test and tests
> ran
> fine, though seems that some tests failed and they and/or some of the
> common helpers may need further tweaks. I think follow-up patches
> would
> be fine.
> 

I think most of the failures are legitimate bugs in either the kernel
driver, the protocol itself or QEMU. Many of those are quite difficult
to fix in userspace-based file servers; in particular those that deal
with timestamps. E.g. generic/120 which tests that atime of a file
doesn't change on exec...

Here are some of my notes for some failing cases:

generic/037: QEMU bug CVE-2017-15038. The CVE bugfix just fixes the
infoleak, but the correctness problem with getattr() remains.
generic/062, generic/097: The 9p protocol doesn't have a way to set
empty xattrs, such a protocol message is treated as xattr deletion.
generic/003 generic/120 generic/192 generic/221 generic/307 \
    generic/313 generic/423: timestamp problems
generic/403: Can't set trusted.* xattr from an userspace file server

One additional problem I know which doesn't get exercised by any
xfstest (AFAICT) is that open("foo", O_CREAT|O_WRONLY, 0444) fails with
-EPERM, at least under some mount options (related to writeback
caching).

> > ---
> >  check         |  2 ++
> >  common/attr   |  4 ++--
> >  common/config |  3 +++
> >  common/rc     | 32 +++++++++++++++++++++++++++++++-
> >  4 files changed, 38 insertions(+), 3 deletions(-)
> > 
> > diff --git check check
> > index f8db3cd6..6078b1ef 100755
> > --- check
> > +++ check
> 
> This patch doesn't apply by default, I have to edit it manually to
> make
> 'git am' work, e.g.
> 
> --- a/check
> +++ b/check
> 
> I think 'git format-patch' would generate the correct patch format.
> 
> 

Yeah, sorry, I forgot to disable the diff.noprefix option in git before
running format-patch which leads to this. Will fix for the next
submission.

--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux