xfs/007: check correct quota inodes
authorDave Chinner <dchinner@redhat.com>
Tue, 14 Oct 2014 06:40:34 +0000 (17:40 +1100)
committerDave Chinner <david@fromorbit.com>
Tue, 14 Oct 2014 06:40:34 +0000 (17:40 +1100)
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>
tests/xfs/007
tests/xfs/007.out

index 247c5b3e949049d98e65984cc7cc17fbeb1c0790..01cc4210109744e648cfa73482401e3b78a96018 100755 (executable)
@@ -48,55 +48,51 @@ _supported_os Linux Irix
 _require_scratch
 _require_xfs_quota
 
-_scratch_mkfs_xfs >/dev/null 2>&1
-
-_qmount_option "uquota,gquota"
-_qmount
+rm -f $seqres.full
 
-echo "*** umount"
-umount $SCRATCH_MNT
+_scratch_mkfs_xfs >/dev/null 2>&1
 
-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}'` 
+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
+}
 
-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
 
+# Test user and group first
+_qmount_option "uquota,gquota"
 _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
+do_test uquotino gquotino ug
 
+# Test user and project
 _qmount_option "uquota,pquota"
 _qmount
-
-echo "*** umount"
-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
+_require_prjquota $SCRATCH_DEV
+do_test uquotino pquotino up
 
 # success, all done
 status=0
index 7c5bff57d9e13672ff54bced8fd71b03b93e3425..8b5f3ea405739e548918a05b353e0dfa77835d92 100644 (file)
@@ -3,7 +3,7 @@ QA output created by 007
 *** Usage before quotarm ***
 core.nblocks = 1
 core.nblocks = 1
-*** turn off user and group quotas
+*** turn off ug quotas
 *** umount
 *** Usage after quotarm ***
 core.nblocks = 0
@@ -12,7 +12,7 @@ core.nblocks = 0
 *** Usage before quotarm ***
 core.nblocks = 1
 core.nblocks = 1
-*** turn off user and project quotas
+*** turn off up quotas
 *** umount
 *** Usage after quotarm ***
 core.nblocks = 0