#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (c) 2008 Silicon Graphics, Inc. All Rights Reserved. # # FS QA Test No. 216 # # log size mkfs test - ensure the log size scaling works for small filesystems # 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.* } # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs xfs _supported_os Linux _require_scratch _scratch_mkfs_xfs >/dev/null 2>&1 _scratch_mount _require_loop LOOP_DEV=$SCRATCH_MNT/test_fs LOOP_MNT=$SCRATCH_MNT/test_fs_dir loop_mkfs_opts= $MKFS_XFS_PROG 2>&1 | grep -q rmapbt && \ loop_mkfs_opts="$loop_mkfs_opts -m rmapbt=0" $MKFS_XFS_PROG 2>&1 | grep -q reflink && \ loop_mkfs_opts="$loop_mkfs_opts -m reflink=0" _do_mkfs() { for i in $*; do echo -n "fssize=${i}g " $MKFS_XFS_PROG -f -b size=4096 -l version=2 \ -d name=$LOOP_DEV,size=${i}g $loop_mkfs_opts |grep log mount -o loop -t xfs $LOOP_DEV $LOOP_MNT echo "test write" > $LOOP_MNT/test umount $LOOP_MNT > /dev/null 2>&1 done } # make large holey file $XFS_IO_PROG -f -c "truncate 256g" $LOOP_DEV #make loopback mount dir mkdir $LOOP_MNT # walk over standard sizes (up to 256GB) _do_mkfs 1 2 4 8 16 32 64 128 256 status=0 exit