On Fri, Nov 29, 2013 at 03:03:39PM +0800, Jeff Liu wrote:
> From: Jie Liu <jeff.liu@xxxxxxxxxx>
>
> Introduce xfs/324 to verify that we can turn group/project quotas off
> while user quota is on and fsstress is running.
>
> Signed-off-by: Jie Liu <jeff.liu@xxxxxxxxxx>
....
> +
> +# Modify as appropriate.
> +_supported_fs xfs
> +_supported_os Linux
> +
> +_require_scratch
> +_require_xfs_quota
> +_require_xfs_crc_sb
Hmmm, now that I look at the way you are using _require_xfs_crc_sb,
it's broken. The scratch device is in an undefined state until a
test runs _scratch_mkfs on it.
What you need to do is check whether mkfs supports "-m crc=1", and
then mkfs the scratch device with that option set.
> +
> +_qmount_option "uquota,gquota,pquota"
> +
> +STRESS_DIR=$SCRATCH_MNT/testdir
> +
Where do you mkfs the scratch device?
> +_exercise()
> +{
> + type=$1
> +
> + _qmount
> + mkdir -p $STRESS_DIR
> +
> + $FSSTRESS_PROG -d $STRESS_DIR -n 100 -p 1000 $FSSTRESS_AVOID
> >>/dev/null 2>&1 &
There's no real reason for creating a load of 1000 processes here.
Half of them won't even get started before this:
> + xfs_quota -x -c "off -$type" $SCRATCH_DEV
is run.
> + killall -q $FSSTRESS_PROG
> + wait
and then you kill them straight away.
> + rm -rf $STRESS_DIR
> + umount $SCRATCH_MNT
You don't need this if you just scratch_mkfs the device between
tests.
So, wouldn't it be better to do:
scratch_mkfs -m crc=1
_qmount
mkdir -p $STRESS_DIR
$FSSTRESS_PROG -d $STRESS_DIR -n 1000 -p 100 $FSSTRESS_AVOID
>>/dev/null 2>&1 &
sleep 10
xfs_quota -x -c "off -$type" $SCRATCH_DEV
sleep 5
killall -q $FSSTRESS_PROG
wait
Cheers,
Dave.
--
Dave Chinner
david@xxxxxxxxxxxxx
|