From a34e0fddd19468023755e8a268c2bad91ac16cf4 Mon Sep 17 00:00:00 2001 From: Christoph Hellwig Date: Fri, 30 Oct 2009 06:41:33 +0100 Subject: [PATCH] test 220: double inode free in xfs_dqrele_inode Trivial test case that mounts a filesystem with user quotas, then turns quotas off an unmounts. Based on a testcase in a bug report from Utako Kusaka . Signed-off-by: Christoph Hellwig Reviewed-by: Alex Elder --- 220 | 71 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 220.out | 2 ++ group | 1 + 3 files changed, 74 insertions(+) create mode 100644 220 create mode 100644 220.out diff --git a/220 b/220 new file mode 100644 index 000000000..b3e244d70 --- /dev/null +++ b/220 @@ -0,0 +1,71 @@ +#! /bin/sh +# FS QA Test No. 220 +# +# Test that turning quotas off on a mounted filesystem doesn't crash +# the system. +# +# Based on a bug report from Utako Kusaka . +# +#----------------------------------------------------------------------- +# Copyright (c) 2009 Christoph Hellwig. 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=hch@lst.de + +seq=`basename $0` +echo "QA output created by $seq" + +here=`pwd` +tmp=/tmp/$$ +status=1 # failure is the default! + +_cleanup() +{ + cd / + umount $SCRATCH_DEV >/dev/null 2>&1 +} +trap "_cleanup; exit \$status" 0 1 2 3 15 + +# get standard environment, filters and checks +. ./common.rc +. ./common.filter +. ./common.quota + +# real QA test starts here +_supported_fs xfs +_supported_os Linux + +_require_scratch +_require_quota + +echo "Silence is golden." + +# create scratch filesystem +_scratch_mkfs_xfs >/dev/null 2>&1 + +# mount with quotas enabled +_scratch_mount -o uquota + +# turn off quota +xfs_quota -x -c off $SCRATCH_DEV + +# and unmount (this used to crash) +umount $SCRATCH_DEV + +status=0 +exit $status diff --git a/220.out b/220.out new file mode 100644 index 000000000..787aeaaa7 --- /dev/null +++ b/220.out @@ -0,0 +1,2 @@ +QA output created by 220 +Silence is golden. diff --git a/group b/group index 7cea01d0c..b0254dda3 100644 --- a/group +++ b/group @@ -329,3 +329,4 @@ prealloc 217 log metadata auto 218 auto fsr quick 219 auto quota quick +220 auto quota quick -- 2.50.1