updates to match top of tree, grpquota support, fix output to match 3.01

quota user tools.
This commit is contained in:
Nathan Scott
2001-04-04 05:42:33 +00:00
parent f6f228af70
commit fb22b1e9e2
12 changed files with 32617 additions and 36 deletions
+5
View File
@@ -129,7 +129,12 @@ mount -t xfs $SCRATCH_DEV $SCRATCH_MNT >>$seq.full 2>&1 \
if src/feature -U $SCRATCH_DEV if src/feature -U $SCRATCH_DEV
then then
if src/feature -G $SCRATCH_DEV
then
ln $seq.ugquota $seq.out
else
ln $seq.usrquota $seq.out ln $seq.usrquota $seq.out
fi
elif src/feature -G $SCRATCH_DEV elif src/feature -G $SCRATCH_DEV
then then
ln $seq.grpquota $seq.out ln $seq.grpquota $seq.out
Executable
+13677
View File
File diff suppressed because it is too large Load Diff
Executable
+14854
View File
File diff suppressed because it is too large Load Diff
+3698 -1
View File
File diff suppressed because it is too large Load Diff
+13 -13
View File
@@ -103,41 +103,41 @@ echo "and using type=$type id=$id" >>$seq.full
echo echo
echo "*** report no quota settings" | tee -a $seq.full echo "*** report no quota settings" | tee -a $seq.full
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
echo echo
echo "*** report initial settings" | tee -a $seq.full echo "*** report initial settings" | tee -a $seq.full
setquota -n -$type $id $SCRATCH_DEV 100 500 4 10 setquota -$type $id 100 500 4 10 $SCRATCH_DEV
_file_as_id $SCRATCH_MNT/initme $id $type $dbsize 0 _file_as_id $SCRATCH_MNT/initme $id $type 1024 0
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
echo echo
echo "*** push past the soft inode limit" | tee -a $seq.full echo "*** push past the soft inode limit" | tee -a $seq.full
_file_as_id $SCRATCH_MNT/softie1 $id $type $dbsize 0 _file_as_id $SCRATCH_MNT/softie1 $id $type 1024 0
_file_as_id $SCRATCH_MNT/softie2 $id $type $dbsize 0 _file_as_id $SCRATCH_MNT/softie2 $id $type 1024 0
_qmount _qmount
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
echo echo
echo "*** push past the soft block limit" | tee -a $seq.full echo "*** push past the soft block limit" | tee -a $seq.full
_file_as_id $SCRATCH_MNT/softie $id $type $dbsize 140 _file_as_id $SCRATCH_MNT/softie $id $type 1024 140
_qmount _qmount
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
echo echo
echo "*** push past the hard inode limit (expect EDQUOT)" | tee -a $seq.full echo "*** push past the hard inode limit (expect EDQUOT)" | tee -a $seq.full
for i in 1 2 3 4 5 6 7 8 9 10 11 12 for i in 1 2 3 4 5 6 7 8 9 10 11 12
do do
_file_as_id $SCRATCH_MNT/hard$i $id $type $dbsize 0 _file_as_id $SCRATCH_MNT/hard$i $id $type 1024 0
done done
_qmount _qmount
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
echo echo
echo "*** push past the hard block limit (expect EDQUOT)" | tee -a $seq.full echo "*** push past the hard block limit (expect EDQUOT)" | tee -a $seq.full
_file_as_id $SCRATCH_MNT/softie $id $type $dbsize 540 _file_as_id $SCRATCH_MNT/softie $id $type 1024 540
_qmount _qmount
repquota -m -$type $SCRATCH_DEV | _filter_repquota repquota -$type $SCRATCH_DEV | _filter_repquota
# success, all done # success, all done
status=0 status=0
+56
View File
@@ -0,0 +1,56 @@
QA output created by 050
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
*** report no quota settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
*** report initial settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 1 4 10
*** push past the soft inode limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 3 4 10
*** push past the soft block limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] +- 140 100 500 4 4 10
*** push past the hard inode limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 4 0 0 3 0 0
[NAME] ++ 140 100 500 16 4 10
*** push past the hard block limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 4 0 0 3 0 0
[NAME] ++ 540 100 500 16 4 10
*** unmount
+56
View File
@@ -0,0 +1,56 @@
QA output created by 050
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
*** report no quota settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
*** report initial settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 1 4 10
*** push past the soft inode limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 3 4 10
*** push past the soft block limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] +- 140 100 500 7days 4 4 10 7days
*** push past the hard inode limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] ++ 140 100 500 7days 10 4 10 7days
*** push past the hard block limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits
User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0
[NAME] ++ 448 100 500 7days 10 4 10 7days
*** unmount
+23 -11
View File
@@ -7,38 +7,50 @@ log =LDEV bsize=XXX blocks=XXX
realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report no quota settings *** report no quota settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
*** report initial settings *** report initial settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 1 4 10 [NAME] -- 0 100 500 1 4 10
*** push past the soft inode limit *** push past the soft inode limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 3 4 10 [NAME] -- 0 100 500 3 4 10
*** push past the soft block limit *** push past the soft block limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] ++ 140 100 500 none 4 4 10 none [NAME] +- 140 100 500 4 4 10
*** push past the hard inode limit (expect EDQUOT) *** push past the hard inode limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 1 0 0 3 0 0 [NAME] -- 4 0 0 3 0 0
[NAME] ++ 140 100 500 none 16 4 10 none [NAME] ++ 140 100 500 16 4 10
*** push past the hard block limit (expect EDQUOT) *** push past the hard block limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 1 0 0 3 0 0 [NAME] -- 4 0 0 3 0 0
[NAME] ++ 540 100 500 none 16 4 10 none [NAME] ++ 540 100 500 16 4 10
*** unmount *** unmount
+21 -9
View File
@@ -7,38 +7,50 @@ log =LDEV bsize=XXX blocks=XXX
realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report no quota settings *** report no quota settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
*** report initial settings *** report initial settings
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 1 4 10 [NAME] -- 0 100 500 1 4 10
*** push past the soft inode limit *** push past the soft inode limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] -- 0 100 500 3 4 10 [NAME] -- 0 100 500 3 4 10
*** push past the soft block limit *** push past the soft block limit
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] ++ 140 100 500 7 days 4 4 10 7 days [NAME] +- 140 100 500 7days 4 4 10 7days
*** push past the hard inode limit (expect EDQUOT) *** push past the hard inode limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] ++ 140 100 500 7 days 10 4 10 7 days [NAME] ++ 140 100 500 7days 10 4 10 7days
*** push past the hard block limit (expect EDQUOT) *** push past the hard block limit (expect EDQUOT)
*** Report for user quotas on device [DEVICE]
Block grace time: 7days Inode grace time: 7days
Block limits File limits Block limits File limits
user used soft hard grace used soft hard grace User used soft hard grace used soft hard grace
[NAME] -- 0 0 0 3 0 0 [NAME] -- 0 0 0 3 0 0
[NAME] ++ 496 100 500 7 days 10 4 10 7 days [NAME] ++ 448 100 500 7days 10 4 10 7days
*** unmount *** unmount
Executable
+136
View File
@@ -0,0 +1,136 @@
#! /bin/sh
# XFS QA Test No. 054
# $Id: 1.1 $
#
# Check behavior of chown with both user and group quota enabled,
# and changing both user and group together via chown(2).
#
#-----------------------------------------------------------------------
# Copyright (c) 2000 Silicon Graphics, Inc. All Rights Reserved.
#
# This program is free software; you can redistribute it and/or modify it
# under the terms of version 2 of the GNU General Public License as
# published by the Free Software Foundation.
#
# This program is distributed in the hope that it would be useful, but
# WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
#
# Further, this software is distributed without any warranty that it is
# free of the rightful claim of any third person regarding infringement
# or the like. Any license provided herein, whether implied or
# otherwise, applies only to this software file. Patent licenses, if
# any, provided herein do not apply to combinations of this program with
# other software, or any other product whatsoever.
#
# You should have received a copy of the GNU General Public License along
# with this program; if not, write the Free Software Foundation, Inc., 59
# Temple Place - Suite 330, Boston MA 02111-1307, USA.
#
# Contact information: Silicon Graphics, Inc., 1600 Amphitheatre Pkwy,
# Mountain View, CA 94043, or:
#
# http://www.sgi.com
#
# For further information regarding this notice, see:
#
# http://oss.sgi.com/projects/GenInfo/SGIGPLNoticeExplan/
#-----------------------------------------------------------------------
#
# creator
owner=nathans@sgi.com
seq=`basename $0`
echo "QA output created by $seq"
here=`pwd`
tmp=/tmp/$$
status=1 # failure is the default!
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
. ./common.quota
_cleanup()
{
umount $SCRATCH_MNT 2>/dev/null
rm -f $tmp.*
}
trap "_cleanup; exit \$status" 0 1 2 3 15
cp /dev/null $seq.full
chmod ugo+rwx $seq.full
_require_scratch
_filter_stat()
{
sed "
/^Access:/d;
/^Modify:/d;
/^Change:/d;
s/Device: *[0-9][0-9]*,[0-9][0-9]*/Device: <DEVICE>/;
s/Inode: *[0-9][0-9]*/Inode: <INODE>/;
s,$SCRATCH_MNT,<MOUNT>,;
" | tr -s ' '
}
_exercise()
{
mkfs -t xfs -f $SCRATCH_DEV >/dev/null 2>&1
_qmount
umask 022
touch $SCRATCH_MNT/testfile
chown 12345 $SCRATCH_MNT/testfile
chgrp 54321 $SCRATCH_MNT/testfile
src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
chown 34567 $SCRATCH_MNT/testfile
chgrp 76543 $SCRATCH_MNT/testfile
src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
chown 56789 $SCRATCH_MNT/testfile
chgrp 98765 $SCRATCH_MNT/testfile
src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
# finally give back to original owners
chown 12345 $SCRATCH_MNT/testfile
chgrp 54321 $SCRATCH_MNT/testfile
src/lstat64 $SCRATCH_MNT/testfile | _filter_stat
echo
umount $SCRATCH_MNT 2>/dev/null
}
# real QA test starts here
mkfs -t xfs -f $SCRATCH_DEV >/dev/null 2>&1
MOUNT_OPTIONS="-o usrquota,grpquota"; export MOUNT_OPTIONS
_qmount
if src/feature -G $SCRATCH_DEV ; then
:
else
_notrun "No quota support at mount time"
fi
umount $SCRATCH_MNT 2>/dev/null
MOUNT_OPTIONS=""; export MOUNT_OPTIONS
echo "*** Default mount options"
_exercise
MOUNT_OPTIONS="-o usrquota"; export MOUNT_OPTIONS
echo "*** User quota mount option"
_exercise
MOUNT_OPTIONS="-o grpquota"; export MOUNT_OPTIONS
echo "*** Group quota mount option"
_exercise
MOUNT_OPTIONS="-o usrquota,grpquota"; export MOUNT_OPTIONS
echo "*** User and Group quota mount options"
_exercise
# success, all done
status=0
exit
+73
View File
@@ -0,0 +1,73 @@
QA output created by 054
*** Default mount options
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (34567) Gid: (76543)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (56789) Gid: (98765)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
*** User quota mount option
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (34567) Gid: (76543)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (56789) Gid: (98765)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
*** Group quota mount option
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (34567) Gid: (76543)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (56789) Gid: (98765)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
*** User and Group quota mount options
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (34567) Gid: (76543)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (56789) Gid: (98765)
Device: <DEVICE> Inode: <INODE> Links: 1
File: "<MOUNT>/testfile"
Size: 0 Filetype: Regular File
Mode: (0644/-rw-r--r--) Uid: (12345) Gid: (54321)
Device: <DEVICE> Inode: <INODE> Links: 1
+4 -1
View File
@@ -84,7 +84,10 @@ _choose_gid()
_filter_repquota() _filter_repquota()
{ {
perl -ne 's/^(\w+)\s+([-|+])/[NAME] \2/g; print' perl -ne "
s/^(\w+)\s+([-|+])/[NAME] \2/g;
s,$SCRATCH_DEV,[DEVICE],g;
print"
} }
_qmount() _qmount()