here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
-trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+ cd /
+ rm -f $tmp.*
+}
# get standard environment, filters and checks
. ./common/rc
. ./common/filter
. ./common/quota
+# remove previous $seqres.full before test
+rm -f $seqres.full
+
+# real QA test starts here
_supported_fs xfs
-_supported_os Linux #IRIX
+_supported_os Linux
_require_scratch
_require_xfs_quota
+_require_user
+_require_group
-# real QA test starts here
-_scratch_mkfs_xfs | _filter_mkfs 2>$tmp.mkfs
-cat $tmp.mkfs >$seqres.full
-. $tmp.mkfs
+_scratch_mkfs_xfs >>$seqres.full 2>&1
-# setup a default run
-if [ -z "$MOUNT_OPTIONS" ]; then
- export MOUNT_OPTIONS="-o pquota,sync"
-else
- export MOUNT_OPTIONS="$MOUNT_OPTIONS -o sync"
-fi
+uqid=`id -u fsgqa`
+gqid=`id -g fsgqa`
+pqid=10
+cat >$tmp.projects <<EOF
+$pqid:$SCRATCH_MNT
+EOF
-_qmount
-_require_prjquota $SCRATCH_DEV
+cat >$tmp.projid <<EOF
+root:0
+fsgqa:$pqid
+EOF
+
+create_files()
+{
+ local bs=$1
+ local inum=$2
-# initial populate
-target=$SCRATCH_MNT/target
-$FSSTRESS_PROG -z -s 57069 -m 8 -n 1000 -p 4 \
--f allocsp=1 \
--f chown=3 \
--f creat=4 \
--f dwrite=4 \
--f fallocate=1 \
--f fdatasync=1 \
--f fiemap=1 \
--f freesp=1 \
--f fsync=1 \
--f link=1 \
--f mkdir=2 \
--f mknod=2 \
--f punch=1 \
--f rename=2 \
--f resvsp=1 \
--f rmdir=1 \
--f setxattr=1 \
--f symlink=2 \
--f sync=1 \
--f truncate=2 \
--f unlink=1 \
--f unresvsp=1 \
--f write=4 \
--d $target
-
-$FSSTRESS_PROG -z -s 57069 -m 8 -n 1000 -p 4 \
--f chown=500 \
--f setxattr=500 \
--d $target
-
-# also use space, to be able to go over/under limits easily
-uid=255
-gid=254
-prid=253
-rm -f $SCRATCH_MNT/resv
-$XFS_IO_PROG -fc "resvsp 0 200m" -c "chproj $prid" $SCRATCH_MNT/resv
-chown $uid $SCRATCH_MNT/resv
-chgrp $gid $SCRATCH_MNT/resv
+ echo "Using type=$type id=$id" >> $seqres.full
-_qmount
+ for ((i=0; i<$((inum-1)); i++)); do
+ _file_as_id $SCRATCH_MNT/inode$i $id $type 1024 0
+ done
+
+ _file_as_id $SCRATCH_MNT/block $id $type $bs 1
+}
+
+clean_files()
+{
+ rm -rf $SCRATCH_MNT/* 2>/dev/null
+ rm -rf $tmp.quot 2>/dev/null
+ rm -rf $tmp.quota 2>/dev/null
+}
+
+filter_quot()
+{
+ _filter_quota | grep -v "root \|\#0 " \
+ | sed -e '/#[0-9]*/s/#[0-9]*/#ID/g'
+}
+
+filter_report()
+{
+ _filter_quota | grep -v "^root \|^\#0 " \
+ | sed -e '/^#[0-9]*/s/^#[0-9]*/#ID/g'
+}
+
+filter_quota()
+{
+ _filter_quota | sed -e "/Disk quotas for/s/([0-9]*)/(ID)/g" \
+ -e "/Disk quotas for/s/#[0-9]*/#ID/g"
+}
-filter_xfs_quota()
+filter_state()
{
- perl -ne "
-s,$SCRATCH_MNT,[SCR_MNT],;
-s,$SCRATCH_DEV,[SCR_DEV],;
-s/Inode: \#\d+ \(0 blocks, 0 extents\)/Inode: #[INO] (0 blocks, 0 extents)/;
-s/Inode: \#\d+ \(\d+ blocks, \d+ extents\)/Inode: #[INO] (X blocks, Y extents)/;
- print;"
+ _filter_quota | sed -e "s/Inode: #[0-9]* (0 blocks, 0 extents)/Inode: #[INO] (0 blocks, 0 extents)/g" \
+ -e "s/Inode: #[0-9]* ([0-9]* blocks, [0-9]* extents)/Inode: #[INO] (X blocks, Y extents)/g" \
+ -e "/[0-9][0-9]:[0-9][0-9]:[0-9][0-9]/s/ [0-9][0-9]:[0-9][0-9]:[0-9][0-9]//g"
}
test_quot()
{
- echo "checking quot command (type=$type)" # not deterministic on blks
- xfs_quota -x -c "quot -n -$type" $SCRATCH_MNT >>$seqres.full 2>&1
+ local opt="$*"
+
+ echo "checking quot command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "quot -$type $opt -bi" $SCRATCH_MNT | filter_quot
}
test_report()
{
+ local opt="$*"
+
echo "checking report command (type=$type)"
- xfs_quota -x -c "report -h -$type -U 256" $SCRATCH_MNT
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "report -$type $opt -bi" \
+ $SCRATCH_MNT | filter_report
}
-test_limit1()
+test_quota()
{
- echo "checking limit command, pass 1 (type=$type)"
- xfs_quota -x -c "limit -$type bsoft=100m bhard=100m ihard=2 $id" \
- $SCRATCH_MNT
- xfs_quota -x -c "limit -$type isoft=1 rtbsoft=100m rtbhard=110m $id"\
- $SCRATCH_MNT
- sleep 2 # let the timer day transition happen
- xfs_quota -x -c "quota -$type -b -hnv $id" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -i -hnv $id" $SCRATCH_MNT
- #xfs_quota -x -c "quota -$type -r -hnv $id" $SCRATCH_MNT
-}
+ local opt="$*"
-test_limit2()
-{
- # push limits up high, so that timers are cleared, etc. (for later)
- echo "checking limit command, pass2 (type=$type)"
- xfs_quota -x -c "limit -$type bsoft=300m bhard=400m ihard=8800 $id" \
- $SCRATCH_MNT
- xfs_quota -x -c "limit -$type isoft=8000 rtbsoft=310m rtbhard=410m $id"\
- $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -b -hnv $id" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -i -hnv $id" $SCRATCH_MNT
- #xfs_quota -x -c "quota -$type -r -hnv $id" $SCRATCH_MNT
+ echo "checking quota command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "quota -$type $opt -bi $id" \
+ $SCRATCH_MNT | filter_quota
}
-test_warn()
+test_limit()
{
- echo "checking warn command (type=$type)"
- xfs_quota -x -c "warn -$type -b 4 $id" $SCRATCH_MNT
- xfs_quota -x -c "warn -$type -i 3 $id" $SCRATCH_MNT
- #xfs_quota -x -c "warn -$type -r 2 $id" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -b -hnv $id" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -i -hnv $id" $SCRATCH_MNT
- #xfs_quota -x -c "quota -$type -r -hnv $id" $SCRATCH_MNT
+ local bs=$1
+ local bh=$2
+ local is=$3
+ local ih=$4
+
+ echo "checking limit command (type=$type, bsoft=$bs, bhard=$bh, isoft=$is, ihard=$ih)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "limit -$type bsoft=$bs bhard=$bh fsgqa" \
+ -c "limit -$type isoft=$is ihard=$ih fsgqa" \
+ $SCRATCH_MNT
+
+ # let the timer day transition happen
+ sleep 2
}
test_timer()
{
echo "checking timer command (type=$type)"
- xfs_quota -x -c "timer -$type -b 3days" $SCRATCH_MNT
- xfs_quota -x -c "timer -$type -i 2days" $SCRATCH_MNT
- #xfs_quota -x -c "timer -$type -r 1day" $SCRATCH_MNT
+ # set 3days+1h for time won't become 2days soon
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "timer -$type -bi 73h" \
+ $SCRATCH_MNT | _filter_scratch
+}
+
+test_disable()
+{
+ echo "checking disable command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "disable -$type -v" \
+ $SCRATCH_MNT | filter_state
+}
+
+test_enable()
+{
+ echo "checking enable command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "enable -$type -v" $SCRATCH_MNT | filter_state
+}
+
+test_off()
+{
+ echo "checking off command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "off -$type -v" $SCRATCH_MNT | _filter_scratch
+}
+
+test_remove()
+{
+ echo "checking remove command (type=$type)"
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "remove -$type -v" \
+ $SCRATCH_MNT | _filter_scratch
}
test_state()
{
echo "checking state command (type=$type)"
- xfs_quota -x -c "state -$type" $SCRATCH_MNT
- # not yet working properly?
- #echo "checking disable command (type=$type)"
- #xfs_quota -x -c "disable -$type -v" $SCRATCH_MNT
- #echo "checking enable command (type=$type)"
- #xfs_quota -x -c "enable -$type -v" $SCRATCH_MNT
- #echo "checking off command (type=$type)"
- #xfs_quota -x -c "off -$type -v" $SCRATCH_MNT
- #echo "checking remove command (type=$type)"
- #xfs_quota -x -c "remove -$type -v" $SCRATCH_MNT
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "state -$type" $SCRATCH_MNT | filter_state
}
-test_backup()
+test_dump()
{
echo "checking dump command (type=$type)"
- rm -f $tmp.backup
- xfs_quota -x -c "dump -$type -f $tmp.backup -U 256" $SCRATCH_MNT
- cat $tmp.backup
-
- echo "changing limits (type=$type)"
- xfs_quota -x -c "limit -$type isoft=1000 ihard=1100 $id" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -i -hnv $id" $SCRATCH_MNT
+ rm -f $tmp.backup 2>>/dev/null
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "dump -$type -f $tmp.backup" \
+ $SCRATCH_MNT | _filter_scratch
+}
+test_restore()
+{
echo "checking restore command (type=$type)"
- xfs_quota -x -c "restore -$type -f $tmp.backup" $SCRATCH_MNT
- xfs_quota -x -c "quota -$type -i -hnv $id" $SCRATCH_MNT
- rm -f $tmp.backup
+ $XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "restore -$type -f $tmp.backup" \
+ $SCRATCH_MNT | _filter_scratch
}
test_xfs_quota()
{
- test_quot ; echo
- test_report ; echo
- test_timer ; echo
- test_limit1 ; echo
- test_warn ; echo
- test_limit2 ; echo
- test_backup ; echo
- test_state ; echo
- echo ; echo
+ # init quota
+ echo "init quota limit and timer, and dump it"
+ echo "create_files 1024k 15"; create_files 1024k 15
+ echo "quota remount"; _qmount
+ echo ; test_quot
+ echo ; test_timer
+ echo ; test_limit 512k 2048k 10 20
+ echo ; test_dump
+
+ # report options test
+ echo "report options test"
+ echo ; test_report
+ echo "-N option"; test_report -N
+ echo "-L -U options"; test_report -L $id -U $id
+ echo "-t option"; test_report -t
+ echo "-n option"; test_report -n
+ echo "-h option"; test_report -h
+
+ # quot options test
+ echo "quot options test"
+ echo ; test_quot
+ echo "-f option"; test_quot -f $tmp.quot
+ cat $tmp.quot | filter_quot
+ echo "-n option"; test_quot -n
+
+ # quota options test
+ echo ; test_quota
+ echo "-f option"; test_quota -f $tmp.quota
+ cat $tmp.quota | filter_quota
+ echo "-N option"; test_quota -N
+ echo "-n option"; test_quota -n
+ echo "-h option"; test_quota -h
+
+ # disable/enable test
+ echo "disable quota"
+ echo ; test_disable
+ echo ; test_report -N
+ echo "expect a remove error at here"; test_remove
+ echo ; test_enable
+ echo ; test_report -N
+
+ # off and remove test
+ echo "off and remove test"
+ echo ; test_limit 100m 100m 100 100
+ echo ; test_quota -N
+ echo ; test_off
+ echo ; test_state
+ echo ; test_remove
+ echo ; test_report -N
+ echo "quota remount"; _qmount
+ echo ; test_report -N
+
+ # restore test
+ echo "restore quota"
+ echo ; test_restore
+ echo ; test_report -N
+ echo ; test_state
+ echo "cleanup files"; clean_files
}
-# real QA test starts here
-export MOUNT_OPTIONS="-ouquota,sync"
+echo "----------------------- uquota,sync ---------------------------"
+_qmount_option "uquota,sync"
_qmount
type=u
-id=$uid
-test_xfs_quota | filter_xfs_quota
+id=$uqid
+test_xfs_quota
-export MOUNT_OPTIONS="-ogquota,sync"
+echo "----------------------- gquota,sync ---------------------------"
+_qmount_option "gquota,sync"
_qmount
type=g
-id=$gid
-test_xfs_quota | filter_xfs_quota
+id=$gqid
+test_xfs_quota
-export MOUNT_OPTIONS="-opquota,sync"
+echo "----------------------- pquota,sync ---------------------------"
+# Need to clean the group quota before test project quota, because
+# V4 xfs doesn't support separate project inode. So mkfs at here.
+_scratch_unmount
+_scratch_mkfs_xfs >>$seqres.full 2>&1
+_qmount_option "pquota,sync"
_qmount
type=p
-id=$prid
-test_xfs_quota | filter_xfs_quota
+id=$pqid
+_require_prjquota $SCRATCH_DEV
+$XFS_QUOTA_PROG -D $tmp.projects -P $tmp.projid -x \
+ -c "project -s $id" \
+ $SCRATCH_MNT > /dev/null
+test_xfs_quota
_scratch_unmount
+# success, all done
status=0
exit
QA output created by 106
-meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks
-data = bsize=XXX blocks=XXX, imaxpct=PCT
- = sunit=XXX swidth=XXX, unwritten=X
-naming =VERN bsize=XXX
-log =LDEV bsize=XXX blocks=XXX
-realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
+----------------------- uquota,sync ---------------------------
+init quota limit and timer, and dump it
+create_files 1024k 15
+quota remount
+
checking quot command (type=u)
+SCRATCH_DEV (SCRATCH_MNT) User:
+ 1024 15 fsgqa
+
+checking timer command (type=u)
+
+checking limit command (type=u, bsoft=512k, bhard=2048k, isoft=10, ihard=20)
+
+checking dump command (type=u)
+report options test
checking report command (type=u)
-User quota on [SCR_MNT] ([SCR_DEV])
- Blocks
-User ID Used Soft Hard Warn/Grace
----------- ---------------------------------
-#0 84.4M 0 0 00 [------]
-#1 5.5M 0 0 00 [------]
-#2 1.2M 0 0 00 [------]
-#3 1.2M 0 0 00 [------]
-#4 2.3M 0 0 00 [------]
-#5 1004K 0 0 00 [------]
-#6 2.1M 0 0 00 [------]
-#7 1.0M 0 0 00 [------]
-#8 0 0 0 00 [------]
-#9 0 0 0 00 [------]
-#10 0 0 0 00 [------]
-#11 0 0 0 00 [------]
-#12 8K 0 0 00 [------]
-#13 228K 0 0 00 [------]
-#14 0 0 0 00 [------]
-#15 696K 0 0 00 [------]
-#16 0 0 0 00 [------]
-#17 300K 0 0 00 [------]
-#18 0 0 0 00 [------]
-#20 40K 0 0 00 [------]
-#22 256K 0 0 00 [------]
-#23 128K 0 0 00 [------]
-#24 1.9M 0 0 00 [------]
-#25 0 0 0 00 [------]
-#26 176K 0 0 00 [------]
-#27 0 0 0 00 [------]
-#28 0 0 0 00 [------]
-#29 0 0 0 00 [------]
-#31 616K 0 0 00 [------]
-#32 0 0 0 00 [------]
-#35 128K 0 0 00 [------]
-#37 0 0 0 00 [------]
-#38 100K 0 0 00 [------]
-#40 0 0 0 00 [------]
-#42 412K 0 0 00 [------]
-#44 0 0 0 00 [------]
-#48 0 0 0 00 [------]
-#50 0 0 0 00 [------]
-#53 288K 0 0 00 [------]
-#54 0 0 0 00 [------]
-#55 0 0 0 00 [------]
-#56 400K 0 0 00 [------]
-#58 0 0 0 00 [------]
-#61 0 0 0 00 [------]
-#63 528K 0 0 00 [------]
-#69 0 0 0 00 [------]
-#70 1.2M 0 0 00 [------]
-#72 32K 0 0 00 [------]
-#75 248K 0 0 00 [------]
-#76 0 0 0 00 [------]
-#77 0 0 0 00 [------]
-#78 632K 0 0 00 [------]
-#83 296K 0 0 00 [------]
-#89 0 0 0 00 [------]
-#91 4K 0 0 00 [------]
-#95 0 0 0 00 [------]
-#96 0 0 0 00 [------]
-#105 0 0 0 00 [------]
-#113 0 0 0 00 [------]
-#118 0 0 0 00 [------]
-#127 0 0 0 00 [------]
-#255 200M 0 0 00 [------]
+User quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+-N option
+checking report command (type=u)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking timer command (type=u)
+-L -U options
+checking report command (type=u)
+User quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking limit command, pass 1 (type=u)
-Disk quotas for User #255 (255)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 100M 100M 00 [-none-] [SCR_MNT]
-Disk quotas for User #255 (255)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1 2 00 [1 day] [SCR_MNT]
-
-checking warn command (type=u)
-Disk quotas for User #255 (255)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 100M 100M 04 [-none-] [SCR_MNT]
-Disk quotas for User #255 (255)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1 2 03 [1 day] [SCR_MNT]
-
-checking limit command, pass2 (type=u)
-Disk quotas for User #255 (255)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 300M 400M 00 [------] [SCR_MNT]
-Disk quotas for User #255 (255)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 8k 8.8k 03 [------] [SCR_MNT]
+-t option
+checking report command (type=u)
+User quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-n option
+checking report command (type=u)
+User quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-h option
+checking report command (type=u)
+User quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+User ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
+---------- --------------------------------- ---------------------------------
+fsgqa 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days]
+
+quot options test
+
+checking quot command (type=u)
+SCRATCH_DEV (SCRATCH_MNT) User:
+ 1024 15 fsgqa
+-f option
+checking quot command (type=u)
+SCRATCH_DEV (SCRATCH_MNT) User:
+ 1024 15 fsgqa
+-n option
+checking quot command (type=u)
+SCRATCH_DEV (SCRATCH_MNT) User:
+ 1024 15 #ID
+
+checking quota command (type=u)
+Disk quotas for User fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-f option
+checking quota command (type=u)
+Disk quotas for User fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-N option
+checking quota command (type=u)
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-n option
+checking quota command (type=u)
+Disk quotas for User #ID (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-h option
+checking quota command (type=u)
+Disk quotas for User fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+disable quota
+
+checking disable command (type=u)
+User quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: OFF
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [3 days]
+Inodes grace time: [3 days]
+Realtime Blocks grace time: [7 days]
+
+checking report command (type=u)
+fsgqa 1024 512 2048 00 [--------] 15 10 20 00 [--------]
+
+expect a remove error at here
+checking remove command (type=u)
+XFS_QUOTARM: Invalid argument
+
+checking enable command (type=u)
+User quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [3 days]
+Inodes grace time: [3 days]
+Realtime Blocks grace time: [7 days]
+
+checking report command (type=u)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+off and remove test
+
+checking limit command (type=u, bsoft=100m, bhard=100m, isoft=100, ihard=100)
+
+checking quota command (type=u)
+SCRATCH_DEV 1024 102400 102400 00 [--------] 15 100 100 00 [--------] SCRATCH_MNT
+
+checking off command (type=u)
+User quota are not enabled on SCRATCH_DEV
+
+checking state command (type=u)
+
+checking remove command (type=u)
+User quota are not enabled on SCRATCH_DEV
+
+checking report command (type=u)
+
+quota remount
+
+checking report command (type=u)
+fsgqa 1024 0 0 00 [--------] 15 0 0 00 [--------]
+
+restore quota
-checking dump command (type=u)
-fs = [SCR_DEV]
-255 614400 819200 8000 8800 634880 839680
-changing limits (type=u)
-Disk quotas for User #255 (255)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1000 1.1k 00 [------] [SCR_MNT]
checking restore command (type=u)
-Disk quotas for User #255 (255)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 8k 8.8k 00 [------] [SCR_MNT]
+
+checking report command (type=u)
+fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+
checking state command (type=u)
-User quota state on [SCR_MNT] ([SCR_DEV])
- Accounting: ON
- Enforcement: ON
- Inode: #[INO] (X blocks, Y extents)
-Blocks grace time: [3 days]
-Inodes grace time: [2 days]
+User quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [7 days]
+Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]
+cleanup files
+----------------------- gquota,sync ---------------------------
+init quota limit and timer, and dump it
+create_files 1024k 15
+quota remount
+
+checking quot command (type=g)
+SCRATCH_DEV (SCRATCH_MNT) Group:
+ 1024 15 fsgqa
+
+checking timer command (type=g)
+checking limit command (type=g, bsoft=512k, bhard=2048k, isoft=10, ihard=20)
+checking dump command (type=g)
+report options test
+
+checking report command (type=g)
+Group quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-N option
+checking report command (type=g)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-L -U options
+checking report command (type=g)
+Group quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-t option
+checking report command (type=g)
+Group quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+-n option
+checking report command (type=g)
+Group quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+-h option
+checking report command (type=g)
+Group quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Group ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
+---------- --------------------------------- ---------------------------------
+fsgqa 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days]
+
+quot options test
+
+checking quot command (type=g)
+SCRATCH_DEV (SCRATCH_MNT) Group:
+ 1024 15 fsgqa
+-f option
checking quot command (type=g)
+SCRATCH_DEV (SCRATCH_MNT) Group:
+ 1024 15 fsgqa
+-n option
+checking quot command (type=g)
+SCRATCH_DEV (SCRATCH_MNT) Group:
+ 1024 15 #ID
+
+checking quota command (type=g)
+Disk quotas for Group fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-f option
+checking quota command (type=g)
+Disk quotas for Group fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-N option
+checking quota command (type=g)
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-n option
+checking quota command (type=g)
+Disk quotas for Group #ID (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-h option
+checking quota command (type=g)
+Disk quotas for Group fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+disable quota
+
+checking disable command (type=g)
+Group quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: OFF
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [3 days]
+Inodes grace time: [3 days]
+Realtime Blocks grace time: [7 days]
checking report command (type=g)
-Group quota on [SCR_MNT] ([SCR_DEV])
- Blocks
-Group ID Used Soft Hard Warn/Grace
----------- ---------------------------------
-#0 85.0M 0 0 00 [------]
-#1 6.1M 0 0 00 [------]
-#2 676K 0 0 00 [------]
-#3 1.9M 0 0 00 [------]
-#4 604K 0 0 00 [------]
-#5 224K 0 0 00 [------]
-#6 504K 0 0 00 [------]
-#7 4K 0 0 00 [------]
-#8 400K 0 0 00 [------]
-#9 0 0 0 00 [------]
-#10 56K 0 0 00 [------]
-#11 2.6M 0 0 00 [------]
-#12 892K 0 0 00 [------]
-#13 0 0 0 00 [------]
-#14 0 0 0 00 [------]
-#15 0 0 0 00 [------]
-#17 0 0 0 00 [------]
-#20 0 0 0 00 [------]
-#21 616K 0 0 00 [------]
-#22 0 0 0 00 [------]
-#23 472K 0 0 00 [------]
-#24 0 0 0 00 [------]
-#25 36K 0 0 00 [------]
-#26 1.1M 0 0 00 [------]
-#27 128K 0 0 00 [------]
-#28 0 0 0 00 [------]
-#30 248K 0 0 00 [------]
-#31 1.0M 0 0 00 [------]
-#33 0 0 0 00 [------]
-#34 0 0 0 00 [------]
-#35 0 0 0 00 [------]
-#36 0 0 0 00 [------]
-#37 0 0 0 00 [------]
-#38 240K 0 0 00 [------]
-#41 412K 0 0 00 [------]
-#43 32K 0 0 00 [------]
-#44 0 0 0 00 [------]
-#45 0 0 0 00 [------]
-#46 0 0 0 00 [------]
-#49 0 0 0 00 [------]
-#51 124K 0 0 00 [------]
-#53 0 0 0 00 [------]
-#55 0 0 0 00 [------]
-#56 176K 0 0 00 [------]
-#57 288K 0 0 00 [------]
-#58 528K 0 0 00 [------]
-#59 0 0 0 00 [------]
-#67 4K 0 0 00 [------]
-#69 624K 0 0 00 [------]
-#70 0 0 0 00 [------]
-#71 0 0 0 00 [------]
-#72 632K 0 0 00 [------]
-#73 0 0 0 00 [------]
-#75 0 0 0 00 [------]
-#79 100K 0 0 00 [------]
-#87 1.2M 0 0 00 [------]
-#88 0 0 0 00 [------]
-#91 0 0 0 00 [------]
-#94 4K 0 0 00 [------]
-#99 248K 0 0 00 [------]
-#101 0 0 0 00 [------]
-#108 0 0 0 00 [------]
-#112 64K 0 0 00 [------]
-#115 296K 0 0 00 [------]
-#121 0 0 0 00 [------]
-#127 0 0 0 00 [------]
-#254 200M 0 0 00 [------]
+fsgqa 1024 512 2048 00 [--------] 15 10 20 00 [--------]
+expect a remove error at here
+checking remove command (type=g)
+XFS_QUOTARM: Invalid argument
-checking timer command (type=g)
+checking enable command (type=g)
+Group quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [3 days]
+Inodes grace time: [3 days]
+Realtime Blocks grace time: [7 days]
-checking limit command, pass 1 (type=g)
-Disk quotas for Group #254 (254)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 100M 100M 00 [-none-] [SCR_MNT]
-Disk quotas for Group #254 (254)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1 2 00 [1 day] [SCR_MNT]
-
-checking warn command (type=g)
-Disk quotas for Group #254 (254)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 100M 100M 04 [-none-] [SCR_MNT]
-Disk quotas for Group #254 (254)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1 2 03 [1 day] [SCR_MNT]
-
-checking limit command, pass2 (type=g)
-Disk quotas for Group #254 (254)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 200M 300M 400M 00 [------] [SCR_MNT]
-Disk quotas for Group #254 (254)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 8k 8.8k 03 [------] [SCR_MNT]
+checking report command (type=g)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+off and remove test
+
+checking limit command (type=g, bsoft=100m, bhard=100m, isoft=100, ihard=100)
+
+checking quota command (type=g)
+SCRATCH_DEV 1024 102400 102400 00 [--------] 15 100 100 00 [--------] SCRATCH_MNT
+
+checking off command (type=g)
+Group quota are not enabled on SCRATCH_DEV
+
+checking state command (type=g)
+
+checking remove command (type=g)
+Group quota are not enabled on SCRATCH_DEV
+
+checking report command (type=g)
+
+quota remount
+
+checking report command (type=g)
+fsgqa 1024 0 0 00 [--------] 15 0 0 00 [--------]
+
+restore quota
-checking dump command (type=g)
-fs = [SCR_DEV]
-254 614400 819200 8000 8800 634880 839680
-changing limits (type=g)
-Disk quotas for Group #254 (254)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 1000 1.1k 00 [------] [SCR_MNT]
checking restore command (type=g)
-Disk quotas for Group #254 (254)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 1 8k 8.8k 00 [------] [SCR_MNT]
+
+checking report command (type=g)
+fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+
checking state command (type=g)
-Group quota state on [SCR_MNT] ([SCR_DEV])
- Accounting: ON
- Enforcement: ON
- Inode: #[INO] (X blocks, Y extents)
-Blocks grace time: [3 days]
-Inodes grace time: [2 days]
+Group quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [7 days]
+Inodes grace time: [7 days]
Realtime Blocks grace time: [7 days]
+cleanup files
+----------------------- pquota,sync ---------------------------
+init quota limit and timer, and dump it
+create_files 1024k 15
+quota remount
+checking quot command (type=p)
+SCRATCH_DEV (SCRATCH_MNT) Project:
+ 1024 15 fsgqa
+checking timer command (type=p)
-checking quot command (type=p)
+checking limit command (type=p, bsoft=512k, bhard=2048k, isoft=10, ihard=20)
+
+checking dump command (type=p)
+report options test
checking report command (type=p)
-Project quota on [SCR_MNT] ([SCR_DEV])
- Blocks
-Project ID Used Soft Hard Warn/Grace
----------- ---------------------------------
-#0 85.0M 0 0 00 [------]
-#1 6.1M 0 0 00 [------]
-#2 676K 0 0 00 [------]
-#3 1.9M 0 0 00 [------]
-#4 604K 0 0 00 [------]
-#5 224K 0 0 00 [------]
-#6 504K 0 0 00 [------]
-#7 4K 0 0 00 [------]
-#8 400K 0 0 00 [------]
-#9 0 0 0 00 [------]
-#10 56K 0 0 00 [------]
-#11 2.6M 0 0 00 [------]
-#12 892K 0 0 00 [------]
-#13 0 0 0 00 [------]
-#14 0 0 0 00 [------]
-#15 0 0 0 00 [------]
-#17 0 0 0 00 [------]
-#20 0 0 0 00 [------]
-#21 616K 0 0 00 [------]
-#22 0 0 0 00 [------]
-#23 472K 0 0 00 [------]
-#24 0 0 0 00 [------]
-#25 36K 0 0 00 [------]
-#26 1.1M 0 0 00 [------]
-#27 128K 0 0 00 [------]
-#28 0 0 0 00 [------]
-#30 248K 0 0 00 [------]
-#31 1.0M 0 0 00 [------]
-#33 0 0 0 00 [------]
-#34 0 0 0 00 [------]
-#35 0 0 0 00 [------]
-#36 0 0 0 00 [------]
-#37 0 0 0 00 [------]
-#38 240K 0 0 00 [------]
-#41 412K 0 0 00 [------]
-#43 32K 0 0 00 [------]
-#44 0 0 0 00 [------]
-#45 0 0 0 00 [------]
-#46 0 0 0 00 [------]
-#49 0 0 0 00 [------]
-#51 124K 0 0 00 [------]
-#53 0 0 0 00 [------]
-#55 0 0 0 00 [------]
-#56 176K 0 0 00 [------]
-#57 288K 0 0 00 [------]
-#58 528K 0 0 00 [------]
-#59 0 0 0 00 [------]
-#67 4K 0 0 00 [------]
-#69 624K 0 0 00 [------]
-#70 0 0 0 00 [------]
-#71 0 0 0 00 [------]
-#72 632K 0 0 00 [------]
-#73 0 0 0 00 [------]
-#75 0 0 0 00 [------]
-#79 100K 0 0 00 [------]
-#87 1.2M 0 0 00 [------]
-#88 0 0 0 00 [------]
-#91 0 0 0 00 [------]
-#94 4K 0 0 00 [------]
-#99 248K 0 0 00 [------]
-#101 0 0 0 00 [------]
-#108 0 0 0 00 [------]
-#112 64K 0 0 00 [------]
-#115 296K 0 0 00 [------]
-#121 0 0 0 00 [------]
-#127 0 0 0 00 [------]
-#254 200M 300M 400M 00 [------]
+Project quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+-N option
+checking report command (type=p)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking timer command (type=p)
+-L -U options
+checking report command (type=p)
+Project quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking limit command, pass 1 (type=p)
-Disk quotas for Project #253 (253)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 100M 100M 00 [------] [SCR_MNT]
-Disk quotas for Project #253 (253)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 1 2 00 [------] [SCR_MNT]
-
-checking warn command (type=p)
-Disk quotas for Project #253 (253)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 100M 100M 00 [------] [SCR_MNT]
-Disk quotas for Project #253 (253)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 1 2 00 [------] [SCR_MNT]
-
-checking limit command, pass2 (type=p)
-Disk quotas for Project #253 (253)
-Filesystem Blocks Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 300M 400M 00 [------] [SCR_MNT]
-Disk quotas for Project #253 (253)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 8k 8.8k 00 [------] [SCR_MNT]
+-t option
+checking report command (type=p)
+Project quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking dump command (type=p)
-fs = [SCR_DEV]
-253 614400 819200 8000 8800 634880 839680
-fs = [SCR_DEV]
-254 614400 819200 8000 8800 634880 839680
-changing limits (type=p)
-Disk quotas for Project #253 (253)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 1000 1.1k 00 [------] [SCR_MNT]
-checking restore command (type=p)
-Disk quotas for Project #253 (253)
-Filesystem Files Quota Limit Warn/Time Mounted on
-[SCR_DEV] 0 8k 8.8k 00 [------] [SCR_MNT]
+-n option
+checking report command (type=p)
+Project quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/ Grace
+---------- -------------------------------------------------- --------------------------------------------------
+#ID 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
-checking state command (type=p)
-Project quota state on [SCR_MNT] ([SCR_DEV])
- Accounting: ON
- Enforcement: ON
- Inode: #[INO] (X blocks, Y extents)
+-h option
+checking report command (type=p)
+Project quota on SCRATCH_MNT (SCRATCH_DEV)
+ Blocks Inodes
+Project ID Used Soft Hard Warn/Grace Used Soft Hard Warn/Grace
+---------- --------------------------------- ---------------------------------
+fsgqa 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days]
+
+quot options test
+
+checking quot command (type=p)
+SCRATCH_DEV (SCRATCH_MNT) Project:
+ 1024 15 fsgqa
+-f option
+checking quot command (type=p)
+SCRATCH_DEV (SCRATCH_MNT) Project:
+ 1024 15 fsgqa
+-n option
+checking quot command (type=p)
+SCRATCH_DEV (SCRATCH_MNT) Project:
+ 1024 15 #ID
+
+checking quota command (type=p)
+Disk quotas for Project fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-f option
+checking quota command (type=p)
+Disk quotas for Project fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-N option
+checking quota command (type=p)
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-n option
+checking quota command (type=p)
+Disk quotas for Project #ID (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1024 512 2048 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+-h option
+checking quota command (type=p)
+Disk quotas for Project fsgqa (ID)
+Filesystem Blocks Quota Limit Warn/Time Files Quota Limit Warn/Time Mounted on
+SCRATCH_DEV 1M 512K 2M 00 [3 days] 15 10 20 00 [3 days] SCRATCH_MNT
+disable quota
+
+checking disable command (type=p)
+Project quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: OFF
+ Inode: #[INO] (X blocks, Y extents)
Blocks grace time: [3 days]
-Inodes grace time: [2 days]
+Inodes grace time: [3 days]
Realtime Blocks grace time: [7 days]
+checking report command (type=p)
+fsgqa 1024 512 2048 00 [--------] 15 10 20 00 [--------]
+
+expect a remove error at here
+checking remove command (type=p)
+XFS_QUOTARM: Invalid argument
+
+checking enable command (type=p)
+Project quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [3 days]
+Inodes grace time: [3 days]
+Realtime Blocks grace time: [7 days]
+
+checking report command (type=p)
+fsgqa 1024 512 2048 00 [3 days] 15 10 20 00 [3 days]
+
+off and remove test
+
+checking limit command (type=p, bsoft=100m, bhard=100m, isoft=100, ihard=100)
+checking quota command (type=p)
+SCRATCH_DEV 1024 102400 102400 00 [--------] 15 100 100 00 [--------] SCRATCH_MNT
+checking off command (type=p)
+Project quota are not enabled on SCRATCH_DEV
+
+checking state command (type=p)
+
+checking remove command (type=p)
+Project quota are not enabled on SCRATCH_DEV
+
+checking report command (type=p)
+
+quota remount
+
+checking report command (type=p)
+fsgqa 1024 0 0 00 [--------] 15 0 0 00 [--------]
+
+restore quota
+
+checking restore command (type=p)
+
+checking report command (type=p)
+fsgqa 1024 512 2048 00 [7 days] 15 10 20 00 [7 days]
+
+
+checking state command (type=p)
+Project quota state on SCRATCH_MNT (SCRATCH_DEV)
+ Accounting: ON
+ Enforcement: ON
+ Inode: #[INO] (X blocks, Y extents)
+Blocks grace time: [7 days]
+Inodes grace time: [7 days]
+Realtime Blocks grace time: [7 days]
+cleanup files