#! /bin/bash # SPDX-License-Identifier: GPL-2.0 # Copyright (C) 2014 Fujitsu. All rights reserved. # # FSQA Test No. btrfs/057 # # Quota rescan stress test, we run fsstress and quota rescan concurrently # seq=`basename $0` seqres=$RESULT_DIR/$seq echo "QA output created by $seq" here=`pwd` tmp=/tmp/$$ status=1 _cleanup() { cd / rm -f $tmp.* } trap "_cleanup; exit \$status" 0 1 2 3 15 # get standard environment, filters and checks . ./common/rc . ./common/filter # real QA test starts here _supported_fs btrfs _supported_os Linux _require_scratch rm -f $seqres.full # use small leaf size to get higher btree height. run_check _scratch_mkfs "-b 1g --nodesize 4096" # inode cache is saved in the FS tree itself for every # individual FS tree,that affects the sizes reported by qgroup show # so we need to explicitly turn it off to get consistent values. _scratch_mount "-o noinode_cache" # -w ensures that the only ops are ones which cause write I/O run_check $FSSTRESS_PROG -d $SCRATCH_MNT -w -p 5 -n 1000 \ $FSSTRESS_AVOID >&/dev/null _run_btrfs_util_prog subvolume snapshot $SCRATCH_MNT \ $SCRATCH_MNT/snap1 run_check $FSSTRESS_PROG -d $SCRATCH_MNT/snap1 -w -p 5 -n 1000 \ $FSSTRESS_AVOID >&/dev/null _run_btrfs_util_prog quota enable $SCRATCH_MNT _run_btrfs_util_prog quota rescan -w $SCRATCH_MNT # remove all file/dir other than subvolume rm -rf $SCRATCH_MNT/snap1/* >& /dev/null rm -rf $SCRATCH_MNT/p* >& /dev/null _run_btrfs_util_prog filesystem sync $SCRATCH_MNT units=`_btrfs_qgroup_units` $BTRFS_UTIL_PROG qgroup show $units $SCRATCH_MNT | $SED_PROG -n '/[0-9]/p' \ | $AWK_PROG '{print $2" "$3}' status=0 exit