xfs/007: check correct quota inodes

Commit b8cac56 ("xfs/007: add project quota Q_XQUOTARM test") has
been broken since it was added - the new code checked the group
quota inode rather than the project quota inode and so always
reported a pre-RM block count of zero.  This occurred due to a copy
and paste of the existing user/group test code and didn't fix up all
the code properly.

Factor the common code into a single function, and pass in the
correct variables the tests require. While there, make sure that we
remove the 007.full file before the test starts to aid future
debugging and also check that project quotas are supported before
trying to test them.

Signed-off-by: Dave Chinner <dchinner@redhat.com>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Dave Chinner
2014-10-14 17:40:34 +11:00
committed by Dave Chinner
parent de161cbaac
commit 13c2dcbe27
2 changed files with 40 additions and 44 deletions
+38 -42
View File
@@ -48,55 +48,51 @@ _supported_os Linux Irix
_require_scratch _require_scratch
_require_xfs_quota _require_xfs_quota
rm -f $seqres.full
_scratch_mkfs_xfs >/dev/null 2>&1 _scratch_mkfs_xfs >/dev/null 2>&1
do_test()
{
qino_1=$1
qino_2=$2
off_opts=$3
echo "*** umount"
umount $SCRATCH_MNT
QINO_1=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | \
grep $qino_1 | awk '{print $NF}'`
QINO_2=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | \
grep $qino_2 | awk '{print $NF}'`
echo "*** Usage before quotarm ***"
xfs_db -c "inode $QINO_1" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $QINO_2" -c "p core.nblocks" $SCRATCH_DEV
_qmount
echo "*** turn off $off_opts quotas"
xfs_quota -x -c "off -$off_opts" $SCRATCH_MNT
xfs_quota -x -c "remove -$off_opts" $SCRATCH_MNT
echo "*** umount"
umount $SCRATCH_MNT
echo "*** Usage after quotarm ***"
xfs_db -c "inode $QINO_1" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $QINO_2" -c "p core.nblocks" $SCRATCH_DEV
}
# Test user and group first
_qmount_option "uquota,gquota" _qmount_option "uquota,gquota"
_qmount _qmount
do_test uquotino gquotino ug
echo "*** umount" # Test user and project
umount $SCRATCH_MNT
UQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep uquotino | awk '{print $NF}'`
GQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep gquotino | awk '{print $NF}'`
echo "*** Usage before quotarm ***"
xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $GQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
_qmount
echo "*** turn off user and group quotas"
xfs_quota -x -c 'off -ug' $SCRATCH_MNT
xfs_quota -x -c "remove -ug" $SCRATCH_MNT
echo "*** umount"
umount $SCRATCH_MNT
echo "*** Usage after quotarm ***"
xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $GQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
_qmount_option "uquota,pquota" _qmount_option "uquota,pquota"
_qmount _qmount
_require_prjquota $SCRATCH_DEV
echo "*** umount" do_test uquotino pquotino up
umount $SCRATCH_MNT
UQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep uquotino | awk '{print $NF}'`
PQUOTINO=`xfs_db -c "sb 0" -c "p" $SCRATCH_DEV | grep gquotino | awk '{print $NF}'`
echo "*** Usage before quotarm ***"
xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
_qmount
echo "*** turn off user and project quotas"
xfs_quota -x -c 'off -up' $SCRATCH_MNT
xfs_quota -x -c "remove -up" $SCRATCH_MNT
echo "*** umount"
umount $SCRATCH_MNT
echo "*** Usage after quotarm ***"
xfs_db -c "inode $UQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
xfs_db -c "inode $PQUOTINO" -c "p core.nblocks" $SCRATCH_DEV
# success, all done # success, all done
status=0 status=0
+2 -2
View File
@@ -3,7 +3,7 @@ QA output created by 007
*** Usage before quotarm *** *** Usage before quotarm ***
core.nblocks = 1 core.nblocks = 1
core.nblocks = 1 core.nblocks = 1
*** turn off user and group quotas *** turn off ug quotas
*** umount *** umount
*** Usage after quotarm *** *** Usage after quotarm ***
core.nblocks = 0 core.nblocks = 0
@@ -12,7 +12,7 @@ core.nblocks = 0
*** Usage before quotarm *** *** Usage before quotarm ***
core.nblocks = 1 core.nblocks = 1
core.nblocks = 1 core.nblocks = 1
*** turn off user and project quotas *** turn off up quotas
*** umount *** umount
*** Usage after quotarm *** *** Usage after quotarm ***
core.nblocks = 0 core.nblocks = 0