-#! /bin/sh
-# XFS QA Test No. 030
+#! /bin/bash
+# FS QA Test No. 030
#
# exercise xfs_repair repairing broken filesystems
#
#-----------------------------------------------------------------------
# Copyright (c) 2000-2002 Silicon Graphics, Inc. All Rights Reserved.
-#
-# This program is free software; you can redistribute it and/or modify it
-# under the terms of version 2 of the GNU General Public License as
+#
+# 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.
-#
-# Further, this software is distributed without any warranty that it is
-# free of the rightful claim of any third person regarding infringement
-# or the like. Any license provided herein, whether implied or
-# otherwise, applies only to this software file. Patent licenses, if
-# any, provided herein do not apply to combinations of this program with
-# other software, or any other product whatsoever.
-#
-# You should have received a copy of the GNU General Public License along
-# with this program; if not, write the Free Software Foundation, Inc., 59
-# Temple Place - Suite 330, Boston MA 02111-1307, USA.
-#
-# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
-# Mountain View, CA 94043, or:
-#
-# http://www.sgi.com
-#
-# For further information regarding this notice, see:
-#
-# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
+#
+# 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
_cleanup()
{
+ cd /
umount $SCRATCH_DEV 2>/dev/null
rm -f $tmp.*
}
. ./common.filter
. ./common.repair
+# link correct .out file
+_link_out_file $seq.out
+
# nuke the superblock, AGI, AGF, AGFL; then try repair the damage
-#
+#
_check_ag()
{
for structure in 'sb 0' 'agf 0' 'agi 0' 'agfl 0'
do
echo "Corrupting $structure - setting bits to $1"
- _check_repair $1 "$structure"
+ _check_repair $1 "$structure" |
+ sed -e '/^error following ag 0 unlinked list$/d'
done
}
# real QA test starts here
-_require_nobigloopfs
+_supported_fs xfs
+_supported_os IRIX Linux
+
_require_scratch
+_require_no_large_scratch_dev
-DSIZE="-dsize=100m"
+DSIZE="-dsize=100m,agcount=6"
# first we need to ensure there are no bogus secondary
# superblocks between the primary and first secondary
# superblock (hanging around from earlier tests)...
-#
+#
_scratch_mkfs_xfs $DSIZE >/dev/null 2>&1
if [ $? -ne 0 ] # probably don't have a big enough scratch
else
_scratch_mount
src/feature -U $SCRATCH_DEV && \
- _notrun "Quota are enabled, test needs controlled sb recovery"
+ _notrun "UQuota are enabled, test needs controlled sb recovery"
src/feature -G $SCRATCH_DEV && \
- _notrun "Quota are enabled, test needs controlled sb recovery"
+ _notrun "GQuota are enabled, test needs controlled sb recovery"
+ src/feature -P $SCRATCH_DEV && \
+ _notrun "PQuota are enabled, test needs controlled sb recovery"
umount $SCRATCH_DEV
fi
clear=""
src/devzero -v -1 -n "$clear" $SCRATCH_DEV >/dev/null
# now kick off the real repair test...
-#
+#
_scratch_mkfs_xfs $DSIZE | _filter_mkfs 2>$tmp.mkfs
-source $tmp.mkfs
+. $tmp.mkfs
_check_ag 0
_check_ag -1