09268e8cb890c7074abc0d9d23c83f13c72b52ad
[xfstests-dev.git] / tests / xfs / 007
1 #! /bin/bash
2 # SPDX-License-Identifier: GPL-2.0
3 # Copyright (c) 2014 Red Hat, Inc.  All Rights Reserved.
4 #
5 # FS QA Test No. xfs/007
6 #
7 # Test to verify Q_XQUOTARM functionality.
8 #
9 . ./common/preamble
10 _begin_fstest auto quota quick
11
12 # Import common functions.
13 . ./common/filter
14 . ./common/quota
15
16 # Modify as appropriate.
17 _supported_fs xfs
18
19 _require_scratch
20 _require_xfs_quota
21
22 _scratch_mkfs_xfs | _filter_mkfs > /dev/null 2> $tmp.mkfs
23 . $tmp.mkfs
24
25 do_test()
26 {
27         qino_1=$1
28         qino_2=$2
29         off_opts=$3
30
31         echo "*** umount"
32         _scratch_unmount
33
34         QINO_1=`_scratch_xfs_get_sb_field $qino_1`
35         QINO_2=`_scratch_xfs_get_sb_field $qino_2`
36
37         echo "*** Usage before quotarm ***"
38         _scratch_xfs_db -c "inode $QINO_1" -c "p core.nblocks"
39         _scratch_xfs_db -c "inode $QINO_2" -c "p core.nblocks"
40
41         _qmount
42         echo "*** turn off $off_opts quotas"
43         xfs_quota -x -c "off -$off_opts" $SCRATCH_MNT
44         xfs_quota -x -c "remove -$off_opts" $SCRATCH_MNT
45         echo "*** umount"
46         _scratch_unmount
47
48         echo "*** Usage after quotarm ***"
49         _scratch_xfs_db -c "inode $QINO_1" -c "p core.nblocks"
50         _scratch_xfs_db -c "inode $QINO_2" -c "p core.nblocks"
51 }
52
53 # Test user and group first
54 _qmount_option "uquota,gquota"
55 _qmount
56 do_test uquotino gquotino ug
57
58 # Test user and project. Note that pquotino only exists on v5 (crc=1)
59 # superblocks. Older supers reuse gquotino.
60 PQUOTINO=pquotino
61 if [ $_fs_has_crcs == 0 ]; then
62         PQUOTINO=gquotino
63 fi
64 _qmount_option "uquota,pquota"
65 _qmount
66 _require_prjquota $SCRATCH_DEV
67 do_test uquotino $PQUOTINO up
68
69 # success, all done
70 status=0
71 exit