From 285c8e8a2d3007c572398d9c78e2160f6a970e19 Mon Sep 17 00:00:00 2001 From: Ari Sundholm Date: Fri, 10 Sep 2021 14:53:55 +0300 Subject: [PATCH] generic/361: require sparse file support and fix mounting the volume. The test case generic/361 fails on multiple filesystem implementations due to two issues: 1. A file is created on a 512 MB volume by truncating it to 1 GB. For this to work, the filesystem implementation must support sparse files. However, the test case does not check for sparse file support. 2. A loop device, backed by the 1 GB file, is created, mkfs is run on it and it is mounted. However, the mount command does not specify the filesystem type. This doesn't always work properly, as the kernel may pick the wrong driver if there are multiple implementations for a particular filesystem, or not find a driver at all in some cases. To fix the behavior of the test case, this commit adds a requirement for sparse file support to the test case, and explicitly specifies the filesystem type as $FSTYP when mounting the loop device. Signed-off-by: Ari Sundholm Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- tests/generic/361 | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/tests/generic/361 b/tests/generic/361 index 173a1a51..d76d2635 100755 --- a/tests/generic/361 +++ b/tests/generic/361 @@ -30,6 +30,7 @@ _supported_fs generic _require_scratch _require_block_device $SCRATCH_DEV _require_loop +_require_sparse_files # create a small filesystem to hold another filesystem image _scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1 @@ -44,7 +45,7 @@ mkdir -p $fs_mnt # mount loop device and create a larger file to hit I/O errors on loop device loop_dev=$(_create_loop_device $fs_img) _mkfs_dev $loop_dev -_mount $loop_dev $fs_mnt +_mount -t $FSTYP $loop_dev $fs_mnt if [ "$FSTYP" = "xfs" ]; then # Turn off all XFS metadata IO error retries dname=$(_short_dev $loop_dev) -- 2.39.5