#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2018 Facebook. All Rights Reserved. # # FS QA Test 494 # # Test truncation/hole punching of an active swapfile. # 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.* } . ./common/rc . ./common/filter rm -f $seqres.full _supported_fs generic _require_scratch_swapfile _require_xfs_io_command "fpunch" echo "Format and mount" _scratch_mkfs > $seqres.full 2>&1 _scratch_mount >> $seqres.full 2>&1 testdir="$SCRATCH_MNT/test-$seq" mkdir "$testdir" blocks=160 blksz=65536 echo "Initialize file" _format_swapfile "$testdir/file1" $((blocks * blksz)) swapon "$testdir/file1" echo "Try to truncate" $XFS_IO_PROG -c "truncate $blksz" "$testdir/file1" echo "Try to punch hole" $XFS_IO_PROG -c "fpunch $blksz $((2 * blksz))" "$testdir/file1" echo "Tear it down" swapoff "$testdir/file1" status=0 exit