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. > > 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. > --- > 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. Thanks, Eryu > @@ -67,6 +67,7 @@ check options > -nfs test NFS > -glusterfs test GlusterFS > -cifs test CIFS > + -9p test 9p > -overlay test overlay > -pvfs2 test PVFS2 > -tmpfs test TMPFS > @@ -265,6 +266,7 @@ while [ $# -gt 0 ]; do > -nfs) FSTYP=nfs ;; > -glusterfs) FSTYP=glusterfs ;; > -cifs) FSTYP=cifs ;; > + -9p) FSTYP=9p ;; > -overlay) FSTYP=overlay; export OVERLAY=true ;; > -pvfs2) FSTYP=pvfs2 ;; > -tmpfs) FSTYP=tmpfs ;; > diff --git common/attr common/attr > index 8a5c9eac..66b0227f 100644 > --- common/attr > +++ common/attr > @@ -243,7 +243,7 @@ _sort_getfattr_output() > > # set maximum total attr space based on fs type > case "$FSTYP" in > -xfs|udf|pvfs2|ceph) > +xfs|udf|pvfs2|9p|ceph) > MAX_ATTRS=1000 > ;; > *) > @@ -263,7 +263,7 @@ xfs|udf|btrfs) > pvfs2) > MAX_ATTRVAL_SIZE=8192 > ;; > -ceph) > +9p|ceph) > MAX_ATTRVAL_SIZE=65536 > ;; > *) > diff --git common/config common/config > index d0fbfe55..5e4a73ed 100644 > --- common/config > +++ common/config > @@ -459,6 +459,9 @@ _check_device() > fi > > case "$FSTYP" in > + 9p) > + # 9p mount tags are just plain strings, so anything is allowed > + ;; > overlay) > if [ ! -d "$dev" ]; then > _fatal "common/config: $name ($dev) is not a directory for overlay" > diff --git common/rc common/rc > index 4c053a53..0d2da68c 100644 > --- common/rc > +++ common/rc > @@ -166,6 +166,8 @@ case "$FSTYP" in > ;; > cifs) > ;; > + 9p) > + ;; > ceph) > ;; > glusterfs) > @@ -578,6 +580,9 @@ _test_mkfs() > cifs) > # do nothing for cifs > ;; > + 9p) > + # do nothing for 9p > + ;; > ceph) > # do nothing for ceph > ;; > @@ -612,6 +617,9 @@ _mkfs_dev() > nfs*) > # do nothing for nfs > ;; > + 9p) > + # do nothing for 9p > + ;; > overlay) > # do nothing for overlay > ;; > @@ -676,7 +684,7 @@ _scratch_mkfs() > local mkfs_status > > case $FSTYP in > - nfs*|cifs|ceph|overlay|glusterfs|pvfs2) > + nfs*|cifs|ceph|overlay|glusterfs|pvfs2|9p) > # unable to re-create this fstyp, just remove all files in > # $SCRATCH_MNT to avoid EEXIST caused by the leftover files > # created in previous runs > @@ -1448,6 +1456,14 @@ _require_scratch_nocheck() > _notrun "this test requires a valid \$SCRATCH_MNT" > fi > ;; > + 9p) > + if [ -z "$SCRATCH_DEV" ]; then > + _notrun "this test requires a valid \$SCRATCH_DEV" > + fi > + if [ ! -d "$SCRATCH_MNT" ]; then > + _notrun "this test requires a valid \$SCRATCH_MNT" > + fi > + ;; > nfs*|ceph) > echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1 > if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then > @@ -1554,6 +1570,14 @@ _require_test() > _notrun "this test requires a valid \$TEST_DIR" > fi > ;; > + 9p) > + if [ -z "$TEST_DEV" ]; then > + _notrun "this test requires a valid \$TEST_DEV" > + fi > + if [ ! -d "$TEST_DIR" ]; then > + _notrun "this test requires a valid \$TEST_DIR" > + fi > + ;; > nfs*|ceph) > echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1 > if [ -z "$TEST_DEV" -o "$?" != "0" ]; then > @@ -2500,6 +2524,9 @@ _check_test_fs() > cifs) > # no way to check consistency for cifs > ;; > + 9p) > + # no way to check consistency for 9p > + ;; > ceph) > # no way to check consistency for CephFS > ;; > @@ -2555,6 +2582,9 @@ _check_scratch_fs() > cifs) > # Don't know how to check a CIFS filesystem, yet. > ;; > + 9p) > + # no way to check consistency for 9p > + ;; > ceph) > # no way to check consistency for CephFS > ;; > -- > 2.15.0 > > -- > 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 -- 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