xfstests ext4 305: test read /proc/fs/ext4/<dev>/mb_groups while the fs is being unmounted

Regression test for commit:
9559996 ext4: remove mb_groups before tearing down the buddy_cache

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Rich Johnston <rjohnston@sgi.com>
[rjohnston@sgi.com renumbered test to next in group sequence] 
Signed-off-by: Rich Johnston <rjohnston@sgi.com>
This commit is contained in:
Eryu Guan
2013-04-01 10:57:43 +00:00
committed by Rich Johnston
parent 94e1e7e53a
commit f792273072
3 changed files with 77 additions and 1 deletions
+74
View File
@@ -0,0 +1,74 @@
#! /bin/bash
# FS QA Test No. 305
#
# Regression test for commit:
# 9559996 ext4: remove mb_groups before tearing down the buddy_cache
#
#-----------------------------------------------------------------------
# Copyright (c) 2013 Red Hat, 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
#-----------------------------------------------------------------------
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
PIDS=""
status=1 # failure is the default!
trap "_cleanup; exit \$status" 0 1 2 3 15
_cleanup()
{
cd /
kill $PIDS >/dev/null 2>&1
}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
# real QA test starts here
_supported_fs ext4
_supported_os Linux
_require_scratch
rm -f $seq.full
echo "Silence is golden"
DEV_BASENAME=$(basename $(readlink -f $SCRATCH_DEV))
echo "Start test on device $SCRATCH_DEV, basename $DEV_BASENAME" >$seq.full
_scratch_mkfs >>$seq.full 2>&1
while true;do
mount $SCRATCH_DEV $SCRATCH_MNT
umount $SCRATCH_DEV
done &
PIDS=$!
while true;do
cat /proc/fs/ext4/$DEV_BASENAME/mb_groups > /dev/null 2>&1
done &
PIDS="$PIDS $!"
# sleep for 180s, in most cases a buggy kernel could hit BUG_ON within 3 minutes
sleep 180
# no BUG_ON, all done
kill $PIDS >/dev/null 2>&1
wait
status=0
exit
+2
View File
@@ -0,0 +1,2 @@
QA output created by 305
Silence is golden
+1 -1
View File
@@ -8,4 +8,4 @@
302 aio dangerous ioctl rw stress 302 aio dangerous ioctl rw stress
303 aio dangerous ioctl rw stress 303 aio dangerous ioctl rw stress
304 aio dangerous ioctl rw stress 304 aio dangerous ioctl rw stress
305 auto