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 <amir7...@gmail.com> Signed-off-by: Deepa Dinamani <deepa.ker...@gmail.com> --- common/rc | 7 +++++++ tests/generic/402 | 13 ++++++++++--- 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/common/rc b/common/rc index eeac1355..fc82c17a 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 -- 2.17.1 _______________________________________________ Y2038 mailing list Y2038@lists.linaro.org https://lists.linaro.org/mailman/listinfo/y2038