common: handle ceph's new mount syntax
authorJeff Layton <jlayton@kernel.org>
Thu, 6 Jan 2022 17:54:26 +0000 (12:54 -0500)
committerEryu Guan <guaneryu@gmail.com>
Sun, 9 Jan 2022 12:54:58 +0000 (20:54 +0800)
Cephfs is introducing a new mount device syntax. Fix the fstests
infrastructure to handle the new syntax correctly.

Cc: Zorro Lang <zlang@redhat.com>
Signed-off-by: Jeff Layton <jlayton@kernel.org>
Reviewed-by: Zorro Lang <zlang@redhat.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/config
common/rc

index e0a5c5df58ffbdd0c81ddf7b2d4037a6230d09e1..2b357746476bffd3066af02388c0c56c042c3038 100644 (file)
@@ -537,6 +537,14 @@ _check_device()
                # 9p and virtiofs mount tags are just plain strings, so anything is allowed
                # tmpfs doesn't use mount source, ignore
                ;;
+       ceph)
+               # ceph has two different possible syntaxes for mount devices. The
+               # network URL check above catches the legacy syntax. Check for the
+               # new-style syntax here.
+               if ( echo $dev | grep -qEv "=/" ); then
+                       _fatal "common/config: $name ($dev) is not a valid ceph mount string"
+               fi
+               ;;
        overlay)
                if [ ! -d "$dev" ]; then
                        _fatal "common/config: $name ($dev) is not a directory for overlay"
index a419b3ba53f67f89041fe80e2e726985b87d986e..09a5c0661e30e2c6acf0156b6d942b1ff9be251f 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -1592,7 +1592,7 @@ _require_scratch_nocheck()
                        _notrun "this test requires a valid \$SCRATCH_MNT"
                fi
                ;;
-       nfs*|ceph)
+       nfs*)
                echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1
                if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
                        _notrun "this test requires a valid \$SCRATCH_DEV"
@@ -1601,6 +1601,15 @@ _require_scratch_nocheck()
                        _notrun "this test requires a valid \$SCRATCH_MNT"
                fi
                ;;
+       ceph)
+               echo $SCRATCH_DEV | grep -qE "=/|:/" > /dev/null 2>&1
+               if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
+                       _notrun "this test requires a valid \$SCRATCH_DEV"
+               fi
+               if [ ! -d "$SCRATCH_MNT" ]; then
+                       _notrun "this test requires a valid \$SCRATCH_MNT"
+               fi
+               ;;
        pvfs2)
                echo $SCRATCH_DEV | grep -q "://" > /dev/null 2>&1
                if [ -z "$SCRATCH_DEV" -o "$?" != "0" ]; then
@@ -1783,7 +1792,7 @@ _require_test()
                        _notrun "this test requires a valid \$TEST_DIR"
                fi
                ;;
-       nfs*|ceph)
+       nfs*)
                echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1
                if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
                        _notrun "this test requires a valid \$TEST_DEV"
@@ -1792,6 +1801,15 @@ _require_test()
                        _notrun "this test requires a valid \$TEST_DIR"
                fi
                ;;
+       ceph)
+               echo $TEST_DEV | grep -qE "=/|:/" > /dev/null 2>&1
+               if [ -z "$TEST_DEV" -o "$?" != "0" ]; then
+                       _notrun "this test requires a valid \$TEST_DEV"
+               fi
+               if [ ! -d "$TEST_DIR" ]; then
+                       _notrun "this test requires a valid \$TEST_DIR"
+               fi
+               ;;
        cifs)
                echo $TEST_DEV | grep -q "//" > /dev/null 2>&1
                if [ -z "$TEST_DEV" -o "$?" != "0" ]; then