From: Tim Shimmin Date: Tue, 23 Aug 2005 06:08:46 +0000 (+0000) Subject: A QA test to reproduce the xfs_trans_brelse() in quota bug. X-Git-Tag: v1.1.0~694 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=9a821d64fed63cdc813316fd6cbbcfc31dce9ea7;p=users%2Fhch%2Fxfstests-dev.git A QA test to reproduce the xfs_trans_brelse() in quota bug. Merge of master-melb:xfs-cmds:23589a by kenmcd. A QA test to reproduce the xfs_trans_brelse() in quota bug. --- diff --git a/118 b/118 new file mode 100755 index 000000000..b2c00d067 --- /dev/null +++ b/118 @@ -0,0 +1,106 @@ +#! /bin/sh +# FS QA Test No. 118 +# +# To test out pv#940675 crash in xfs_trans_brelse + quotas +# Without the fix, this will create an ASSERT failure in debug kernels +# and crash a non-debug kernel. +# +#----------------------------------------------------------------------- +# Copyright (c) 2000-2005 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 +# 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/ +#----------------------------------------------------------------------- +# +# creator +owner=tes@crackle.melbourne.sgi.com + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! +trap "_cleanup; exit \$status" 0 1 2 3 15 + +_cleanup() +{ + cd / + rm -f $tmp.* +} + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter + +# real QA test starts here + +# Modify as appropriate. +_supported_fs xfs +_supported_os IRIX Linux + +_require_scratch + +_chowning_file() +{ + file=file.chown + let start=$1 + let limit=$2 + let delta=$3 + + cd $SCRATCH_MNT + let count=$start + while (( count < limit )); do + touch $file + chown $count.$count $file + echo -n "." + let count=count+delta + done + echo "" +} + + +echo "mkfs on scratch" +_scratch_mkfs_xfs >$seq.full + +echo "mount with quotas" +export MOUNT_OPTIONS="-o uquota" +_scratch_mount + +echo "creating quota file with holes" +_chowning_file 1000 2000 100 + +echo "now fill in the holes" +_chowning_file 1000 2000 1 + +echo "look at the final file ownership for fun" +stat -ug $SCRATCH_MNT/* | sed "s#$SCRATCH_MNT#SCRATCH_MNT#g" + +# success, all done +status=0 +exit diff --git a/118.out b/118.out new file mode 100644 index 000000000..b7ea99752 --- /dev/null +++ b/118.out @@ -0,0 +1,10 @@ +QA output created by 118 +mkfs on scratch +mount with quotas +creating quota file with holes +.......... +now fill in the holes +........................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................................ +look at the final file ownership for fun +SCRATCH_MNT/file.chown: + uid 1999; gid 1999 diff --git a/group b/group index 450e8ce9f..2efb49af7 100644 --- a/group +++ b/group @@ -191,3 +191,4 @@ aio nathans@sgi.com 115 parent attr 116 quota 117 attr auto +118 quota