d1946524e8136903494248a1b3a5508266e11ce3
[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         _scratch_unmount
45         _qmount_option ""
46         _scratch_mount
47         xfs_quota -x -c "remove -$off_opts" $SCRATCH_MNT
48         echo "*** umount"
49         _scratch_unmount
50
51         echo "*** Usage after quotarm ***"
52         _scratch_xfs_db -c "inode $QINO_1" -c "p core.nblocks"
53         _scratch_xfs_db -c "inode $QINO_2" -c "p core.nblocks"
54 }
55
56 # Test user and group first
57 _qmount_option "uquota,gquota"
58 _qmount
59 do_test uquotino gquotino ug
60
61 # Test user and project. Note that pquotino only exists on v5 (crc=1)
62 # superblocks. Older supers reuse gquotino.
63 PQUOTINO=pquotino
64 if [ $_fs_has_crcs == 0 ]; then
65         PQUOTINO=gquotino
66 fi
67 _qmount_option "uquota,pquota"
68 _qmount
69 _require_prjquota $SCRATCH_DEV
70 do_test uquotino $PQUOTINO up
71
72 # success, all done
73 status=0
74 exit