#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2018 CTERA Networks. All Rights Reserved. # # FS QA Test No. 491 # # Test first read with freeze right after mount. # # With ext4, this leads to freeze proection bypass WARN_ON in # ext4_journal_check_start. # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 # failure is the default! trap "_cleanup; exit \$status" 0 1 2 3 15 _cleanup() { cd / rm -f $tmp.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs generic _supported_os Linux _require_scratch _require_freeze _require_command "$TIMEOUT_PROG" "timeout" rm -f $seqres.full testfile=$SCRATCH_MNT/foo # Create a filesystem with a file _scratch_mkfs >>$seqres.full 2>&1 _scratch_mount echo "frozen" > $testfile # Mount filesystem "noatime" and freeze right after mount - # reads should not block _scratch_cycle_mount "noatime" xfs_freeze -f $SCRATCH_MNT # Read file while filesystem is frozen should succeed # without blocking $TIMEOUT_PROG -s KILL 1s cat $testfile xfs_freeze -u $SCRATCH_MNT status=0 exit