| #! /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. |
| # |
| . ./common/preamble |
| _begin_fstest auto quick swap punch |
| |
| . ./common/filter |
| |
| _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)) > /dev/null |
| 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 |