-#! /bin/sh
+#! /bin/bash
+# FSQA Test No. 068
+#
+# Test case to reproduce xfs_freeze hang under filsystem load.
+# The fail case for this test is a hang on an xfs_freeze.
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2005 Silicon Graphics, Inc. All Rights Reserved.
#
#-----------------------------------------------------------------------
#
-# FSQA Test No. 068
-#
-# Test case to reproduce xfs_freeze hang under filsystem load.
-# The fail case for this test is a hang on an xfs_freeze.
-#
# creator
owner=ajones@sgi.com
. ./common.filter
# real QA test starts here
-_supported_fs xfs
+_supported_fs generic
_supported_os Linux IRIX
_require_scratch
+_require_freeze
echo "*** init FS"
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** MKFS ***" >>$seq.full
echo "" >>$seq.full
-_scratch_mkfs_xfs >>$seq.full 2>&1 \
+_scratch_mkfs >>$seq.full 2>&1 \
|| _fail "mkfs failed"
_scratch_mount >>$seq.full 2>&1 \
|| _fail "mount failed"
nops=200
while [ -f "$tmp.running" ]
do
- # -w ensures that the only ops are ones which cause write I/O
- $FSSTRESS_PROG -d $STRESS_DIR -w -p $procs -n $nops $FSSTRESS_AVOID \
+ # We do both read & write IO - not only is this more realistic,
+ # but it also potentially tests atime updates
+ $FSSTRESS_PROG -d $STRESS_DIR -p $procs -n $nops $FSSTRESS_AVOID \
> /dev/null 2>&1
done
rmdir $STRESS_DIR
} &
+# start fstest -m loop in a background block; this gets us mmap coverage
+{
+ FSTEST_DIR="$SCRATCH_MNT/fstest_test_dir"
+ mkdir "$FSTEST_DIR"
+
+ procs=2
+ while [ -f "$tmp.running" ]
+ do
+ src/fstest -m -p $FSTEST_DIR -n $procs -f 4 > /dev/null 2>&1
+ done
+
+ rm -rf $FSTEST_DIR/*
+ rmdir $FSTEST_DIR
+} &
+
i=0
let ITERATIONS=$ITERATIONS-1