]> git.apps.os.sepia.ceph.com Git - xfstests-dev.git/commitdiff
generic/361: require sparse file support and fix mounting the volume.
authorAri Sundholm <ari@tuxera.com>
Fri, 10 Sep 2021 11:53:55 +0000 (14:53 +0300)
committerEryu Guan <guaneryu@gmail.com>
Sun, 12 Sep 2021 08:54:19 +0000 (16:54 +0800)
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 <ari@tuxera.com>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
tests/generic/361

index 173a1a519bd0bcf5674113820fa14f7382a84c4c..d76d2635bd5a3d2b790597ad3883a7445659ca4d 100755 (executable)
@@ -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)