Message ID | 20220105173013.172424-1-jlayton@kernel.org (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | common: handle ceph's new mount syntax | expand |
On Wed, Jan 05, 2022 at 12:30:13PM -0500, Jeff Layton wrote: > Cephfs is introducing a new mount device syntax. Fix the fstests > infrastructure to handle the new syntax correctly. > > Signed-off-by: Jeff Layton <jlayton@kernel.org> > --- > common/config | 2 +- > common/rc | 34 ++++++++++++++++++++++++++++++++-- > 2 files changed, 33 insertions(+), 3 deletions(-) > > diff --git a/common/config b/common/config > index e0a5c5df58ff..be97436b0857 100644 > --- a/common/config > +++ b/common/config > @@ -533,7 +533,7 @@ _check_device() > fi > > case "$FSTYP" in > - 9p|tmpfs|virtiofs) > + 9p|tmpfs|virtiofs|ceph) > # 9p and virtiofs mount tags are just plain strings, so anything is allowed > # tmpfs doesn't use mount source, ignore Better to add a comment to explain why add *ceph* at here, especially others all have explanation. But I think you might still want to check if it's a network url, not only just skip the checking directly. Except it's similar with virtiofs use plain strings. As there's below checking in _check_device() function: if [ -b "$dev" ] || ( echo $dev | grep -qE ":|//" ); then # block device or a network url return 0 fi Can `grep -qE ":|=|//"` or something else help you through this checking? I'm not familar with cephfs, so just ask if it's as you wish. Thanks, Zorro > ;; > diff --git a/common/rc b/common/rc > index 7973ceb5fdf8..4fa0b818d840 100644 > --- 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,21 @@ _require_scratch_nocheck() > _notrun "this test requires a valid \$SCRATCH_MNT" > fi > ;; > + ceph) > + if [ -z "$SCRATCH_DEV" ]; then > + _notrun "this test requires a valid \$SCRATCH_DEV" > + fi > + echo $SCRATCH_DEV | grep -q "=/" > /dev/null 2>&1 > + if [ "$?" != "0" ]; then > + echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1 > + if [ "$?" != "0" ]; then > + _notrun "this test requires a valid \$SCRATCH_DEV" > + fi > + 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 > @@ -1770,7 +1785,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" > @@ -1779,6 +1794,21 @@ _require_test() > _notrun "this test requires a valid \$TEST_DIR" > fi > ;; > + ceph) > + if [ -z "$TEST_DEV" ]; then > + _notrun "this test requires a valid \$TEST_DEV" > + fi > + echo $TEST_DEV | grep -q "=/" > /dev/null 2>&1 > + if [ "$?" != "0" ]; then > + echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1 > + if [ "$?" != "0" ]; then > + _notrun "this test requires a valid \$TEST_DEV" > + fi > + 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 > -- > 2.33.1 >
diff --git a/common/config b/common/config index e0a5c5df58ff..be97436b0857 100644 --- a/common/config +++ b/common/config @@ -533,7 +533,7 @@ _check_device() fi case "$FSTYP" in - 9p|tmpfs|virtiofs) + 9p|tmpfs|virtiofs|ceph) # 9p and virtiofs mount tags are just plain strings, so anything is allowed # tmpfs doesn't use mount source, ignore ;; diff --git a/common/rc b/common/rc index 7973ceb5fdf8..4fa0b818d840 100644 --- 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,21 @@ _require_scratch_nocheck() _notrun "this test requires a valid \$SCRATCH_MNT" fi ;; + ceph) + if [ -z "$SCRATCH_DEV" ]; then + _notrun "this test requires a valid \$SCRATCH_DEV" + fi + echo $SCRATCH_DEV | grep -q "=/" > /dev/null 2>&1 + if [ "$?" != "0" ]; then + echo $SCRATCH_DEV | grep -q ":/" > /dev/null 2>&1 + if [ "$?" != "0" ]; then + _notrun "this test requires a valid \$SCRATCH_DEV" + fi + 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 @@ -1770,7 +1785,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" @@ -1779,6 +1794,21 @@ _require_test() _notrun "this test requires a valid \$TEST_DIR" fi ;; + ceph) + if [ -z "$TEST_DEV" ]; then + _notrun "this test requires a valid \$TEST_DEV" + fi + echo $TEST_DEV | grep -q "=/" > /dev/null 2>&1 + if [ "$?" != "0" ]; then + echo $TEST_DEV | grep -q ":/" > /dev/null 2>&1 + if [ "$?" != "0" ]; then + _notrun "this test requires a valid \$TEST_DEV" + fi + 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
Cephfs is introducing a new mount device syntax. Fix the fstests infrastructure to handle the new syntax correctly. Signed-off-by: Jeff Layton <jlayton@kernel.org> --- common/config | 2 +- common/rc | 34 ++++++++++++++++++++++++++++++++-- 2 files changed, 33 insertions(+), 3 deletions(-)