#! /bin/bash
# SPDX-License-Identifier: GPL-2.0
# Copyright (c) 2009 Christoph Hellwig.  All Rights Reserved.
#
# FS QA Test No. 220
#
# Test quota off handling.
#
# Based on bug reports from Utako Kusaka <u-kusaka@wm.jp.nec.com> and
# Ryota Yamauchi <r-yamauchi@vf.jp.nec.com>.
#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"

here=`pwd`
tmp=/tmp/$$
status=1	# failure is the default!

_cleanup()
{
	cd /
	_scratch_unmount >/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

_require_scratch
_require_quota

# Only mount with the specific quota options mentioned below
_qmount_option "defaults"

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)
_scratch_unmount

# create scratch filesystem
_scratch_mkfs_xfs >/dev/null 2>&1

# mount  with quotas enabled
_scratch_mount -o uquota

# turn off quota and remove space allocated to the quota files
# (this used to give wrong ENOSYS returns in 2.6.31)
xfs_quota -x -c off -c remove $SCRATCH_DEV

# and unmount again
_scratch_unmount

status=0
exit $status
