mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
generic/017: Do not create file systems with different block sizes
User takes care about specifying mkfs options he wishes to test and the test itself should not change it if it's not strictly necessary for the test itself. In this case it is not necessary and we should only test configuration provided by the user. Moreover if the block size was already specified some mkfs utilities does not handle multiple of the same parameters and the mkfs utility fails making it re-try with only provided options (ignoring what user specified), which is wrong. In this case it's also a problem for btrfs file system which does not support block size < page size. Fix it by removing the mkfs, and testing existing configuration only. Signed-off-by: Lukas Czerner <lczerner@redhat.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
committed by
Dave Chinner
parent
a2a1fc679e
commit
448efe1309
+16
-30
@@ -46,45 +46,31 @@ _require_scratch
|
||||
_require_xfs_io_command "fiemap"
|
||||
_require_xfs_io_command "fcollapse"
|
||||
_do_die_on_error=y
|
||||
|
||||
_scratch_mkfs > /dev/null 2>&1
|
||||
_scratch_mount
|
||||
|
||||
testfile=$SCRATCH_MNT/$seq.$$
|
||||
BLOCKS=10240
|
||||
|
||||
for (( BSIZE = 1024; BSIZE <= 4096; BSIZE *= 2 )); do
|
||||
BSIZE=`get_block_size $SCRATCH_MNT`
|
||||
|
||||
length=$(($BLOCKS * $BSIZE))
|
||||
case $FSTYP in
|
||||
xfs)
|
||||
_scratch_mkfs -b size=$BSIZE >> $seqres.full 2>&1
|
||||
;;
|
||||
ext4)
|
||||
_scratch_mkfs -b $BSIZE >> $seqres.full 2>&1
|
||||
;;
|
||||
esac
|
||||
_scratch_mount >> $seqres.full 2>&1
|
||||
length=$(($BLOCKS * $BSIZE))
|
||||
|
||||
# Write file
|
||||
$XFS_IO_PROG -f -c "pwrite 0 $length" -c fsync $testfile > /dev/null
|
||||
# Write file
|
||||
$XFS_IO_PROG -f -c "pwrite 0 $length" -c fsync $testfile > /dev/null
|
||||
|
||||
# Collapse alternate blocks
|
||||
for (( i = 1; i <= 7; i++ )); do
|
||||
for (( j=0; j < $(($BLOCKS/(2**$i))); j++ )); do
|
||||
offset=$(($j*$BSIZE))
|
||||
$XFS_IO_PROG -c "fcollapse $offset $BSIZE" $testfile > /dev/null
|
||||
done
|
||||
# Collapse alternate blocks
|
||||
for (( i = 1; i <= 7; i++ )); do
|
||||
for (( j=0; j < $(($BLOCKS/(2**$i))); j++ )); do
|
||||
offset=$(($j*$BSIZE))
|
||||
$XFS_IO_PROG -c "fcollapse $offset $BSIZE" $testfile > /dev/null
|
||||
done
|
||||
|
||||
# Check if 80 extents are present
|
||||
$XFS_IO_PROG -c "fiemap -v" $testfile | grep "^ *[0-9]*:" |wc -l
|
||||
|
||||
_check_scratch_fs
|
||||
if [ $? -ne 0 ]; then
|
||||
status=1
|
||||
exit
|
||||
fi
|
||||
|
||||
umount $SCRATCH_MNT
|
||||
done
|
||||
|
||||
# Check if 80 extents are present
|
||||
$XFS_IO_PROG -c "fiemap -v" $testfile | grep "^ *[0-9]*:" |wc -l
|
||||
|
||||
# success, all done
|
||||
status=0
|
||||
exit
|
||||
|
||||
Reference in New Issue
Block a user