From: Deepa Dinamani Date: Sun, 19 Jan 2020 00:57:44 +0000 (-0800) Subject: generic/402: Make timestamp range check conditional X-Git-Tag: v2022.05.01~883 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=4bfaca4ef87e625a0d3acbd354a32b258a0d20be;p=xfstests-dev.git generic/402: Make timestamp range check conditional Addition of fs-specific timestamp range checking was added in 188d20bcd1eb ("vfs: Add file timestamp range support"). Add a check for whether the kernel supports the limits check before running the associated test. Based on an off-list discussion, we use a simpler interim approach until fsinfo syscall would provide fs timestamp limits info. This isn't perfect, but works for filesystems expiring in 2038. Suggested-by: Amir Goldstein Reviewed-by: Amir Goldstein Signed-off-by: Deepa Dinamani Signed-off-by: Eryu Guan --- diff --git a/common/rc b/common/rc index cf6bc9d5..b4a77a21 100644 --- a/common/rc +++ b/common/rc @@ -1990,6 +1990,13 @@ _require_timestamp_range() if [ $tsmin -eq -1 -a $tsmax -eq -1 ]; then _notrun "filesystem $FSTYP timestamp bounds are unknown" fi + + # expect console warning from rw scratch mount if fs limit is near + if [ $tsmax -le $((1<<31)) ] && \ + ! _check_dmesg_for "filesystem being mounted at .* supports timestamps until" + then + _notrun "Kernel does not support timestamp limits" + fi } _filesystem_timestamp_range() diff --git a/tests/generic/402 b/tests/generic/402 index 0392c258..2a34d127 100755 --- a/tests/generic/402 +++ b/tests/generic/402 @@ -16,7 +16,13 @@ echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! -trap "exit \$status" 0 1 2 3 15 +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} # Get standard environment, filters and checks. . ./common/rc @@ -30,6 +36,7 @@ rm -f $seqres.full _supported_fs generic _supported_os Linux _require_scratch +_require_check_dmesg _require_xfs_io_command utimes # Compare file timestamps obtained from stat @@ -80,6 +87,8 @@ run_test() } _scratch_mkfs &>> $seqres.full 2>&1 || _fail "mkfs failed" +_scratch_mount || _fail "scratch mount failed" + _require_timestamp_range $SCRATCH_DEV read tsmin tsmax <<<$(_filesystem_timestamp_range $SCRATCH_DEV) @@ -96,8 +105,6 @@ declare -a TIMESTAMPS=( $((tsmax+1)) ) -_scratch_mount || _fail "scratch mount failed" - status=0 # Begin test case 1