#! /bin/bash
# FS QA Test No. 076
#
# Test blockdev reads in parallel with filesystem reads/writes
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2004 Silicon Graphics, Inc.  All Rights Reserved.
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write the Free Software Foundation,
# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
#
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com

seq=`basename $0`
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1

_lets_get_pidst()
{
	if [ -n "$pid" ]; then
		kill -TERM $pid 2>/dev/null
		pid=""
		wait 2>/dev/null
	fi
}

_cleanup()
{
	echo "*** unmount"
	umount $SCRATCH_MNT 2>/dev/null
	_lets_get_pidst
}
trap "_cleanup; rm -f $tmp.*; exit \$status" 0 1 2 3 15

# get standard environment, filters and checks
. ./common.rc
. ./common.filter

# real QA test starts here
_supported_fs generic
_supported_os IRIX Linux

_require_scratch

echo "*** init fs"

rm -f $seq.full
umount $SCRATCH_DEV >/dev/null 2>&1
echo "*** MKFS ***"                         >>$seq.full
echo ""                                     >>$seq.full
_scratch_mkfs                               >>$seq.full 2>&1 \
	|| _fail "mkfs failed"
_scratch_mount                              >>$seq.full 2>&1 \
	|| _fail "mount failed"

echo "*** test concurrent block/fs access"

cat $SCRATCH_DEV >/dev/null &
pid=$!

$FSSTRESS_PROG -d $SCRATCH_MNT -p 2 -n 2000 $FSSTRESS_AVOID >>$seq.full

_lets_get_pidst
_check_scratch_fs

echo "*** done"
status=0
exit
