From: Chandan Rajendra <chandan@linux.vnet.ibm.com>
To: fstests@vger.kernel.org
Cc: Chandan Rajendra <chandan@linux.vnet.ibm.com>,
guaneryu@gmail.com, darrick.wong@oracle.com,
linux-xfs@vger.kernel.org
Subject: [PATCH V3 03/19] Fix xfs/050 to work with 64k block size
Date: Wed, 12 Sep 2018 11:56:10 +0530 [thread overview]
Message-ID: <20180912062626.14349-4-chandan@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180912062626.14349-1-chandan@linux.vnet.ibm.com>
This commit changes the test to calculate quota limits based on the
block size of the underlying filesystem. Also, the sizes of the test
files are now made to be a multiple of the filesystem block size.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/xfs/050 | 24 ++++++++++++++--------
tests/xfs/050.out | 60 +++++++++++++++++++++++++++----------------------------
2 files changed, 46 insertions(+), 38 deletions(-)
diff --git a/tests/xfs/050 b/tests/xfs/050
index 8569c2c..01d82cc 100755
--- a/tests/xfs/050
+++ b/tests/xfs/050
@@ -38,8 +38,13 @@ chmod a+rwx $seqres.full # arbitrary users will write here
_require_scratch
_require_xfs_quota
-bsoft=100
-bhard=500
+_scratch_mkfs >/dev/null 2>&1
+_scratch_mount
+bsize=$(_get_block_size $SCRATCH_MNT)
+_scratch_unmount
+
+bsoft=$(( 25 * $bsize ))
+bhard=$(( 125 * $bsize ))
isoft=4
ihard=10
@@ -55,7 +60,9 @@ _filter_report()
if ($ENV{'LARGE_SCRATCH_DEV'}) {
$val = $ENV{'NUM_SPACE_FILES'};
}
- s/(^\[ROOT\] \S+ \S+ \S+ \S+ \[--------\] )(\S+)/$1@{[$2 - $val]}/g'
+ s/(^\[ROOT\] \S+ \S+ \S+ \S+ \[--------\] )(\S+)/$1@{[$2 - $val]}/g' |
+ perl -npe '
+ s|^(.*?) (\d+) (\d+) (\d+)|$1 @{[$2 * 1024 /'$bsize']} @{[$3 * 1024 /'$bsize']} @{[$4 * 1024 /'$bsize']}|'
}
# The actual point at which limit enforcement takes place for the
@@ -70,9 +77,10 @@ _filter_and_check_blks()
if (/^\#'$id'\s+(\d+)/ && '$enforce') {
$maximum = '$bhard';
$minimum = '$bhard' * 85/100;
- if (($1 < $minimum || $1 > $maximum) && '$noextsz') {
+ $used = $1 * 1024;
+ if (($used < $minimum || $used > $maximum) && '$noextsz') {
printf(" URK %d: %d is out of range! [%d,%d]\n",
- '$id', $1, $minimum, $maximum);
+ '$id', $used, $minimum, $maximum);
}
s/^(\#'$id'\s+)(\d+)/\1 =OK=/g;
}
@@ -132,7 +140,7 @@ _exercise()
echo "ls -l $SCRATCH_MNT" >>$seqres.full
ls -l $SCRATCH_MNT >>$seqres.full
xfs_quota -D $tmp.projects -P $temp.projid -x \
- -c "limit -$type bsoft=${bsoft}k bhard=${bhard}k $id" \
+ -c "limit -$type bsoft=${bsoft} bhard=${bhard} $id" \
-c "limit -$type isoft=$isoft ihard=$ihard $id" \
$SCRATCH_DEV
xfs_quota -D $tmp.projects -P $tmp.projid -x \
@@ -152,7 +160,7 @@ _exercise()
echo
echo "*** push past the soft block limit" | tee -a $seqres.full
- _file_as_id $SCRATCH_MNT/softie $id $type 1024 140
+ _file_as_id $SCRATCH_MNT/softie $id $type $bsize 35
_qmount
xfs_quota -D $tmp.projects -P $tmp.projid -x \
-c "repquota -birnN -$type" $SCRATCH_DEV |
@@ -173,7 +181,7 @@ _exercise()
echo
# Note: for quota accounting (not enforcement), EDQUOT is not expected
echo "*** push past the hard block limit (expect EDQUOT)" | tee -a $seqres.full
- _file_as_id $SCRATCH_MNT/softie $id $type 1024 540
+ _file_as_id $SCRATCH_MNT/softie $id $type $bsize 135
echo "ls -l $SCRATCH_MNT" >>$seqres.full
ls -l $SCRATCH_MNT >>$seqres.full
_qmount
diff --git a/tests/xfs/050.out b/tests/xfs/050.out
index ff9eb1c..53907a2 100644
--- a/tests/xfs/050.out
+++ b/tests/xfs/050.out
@@ -12,23 +12,23 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 100 500 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 25 125 0 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
*** unmount
*** group
@@ -44,23 +44,23 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 100 500 00 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 25 125 0 [7 days] 10 4 10 00 [7 days] 0 0 0 00 [--------]
*** unmount
*** uqnoenforce
@@ -76,23 +76,23 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 540 100 500 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** unmount
*** gqnoenforce
@@ -108,23 +108,23 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 540 100 500 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** unmount
*** pquota
@@ -140,23 +140,23 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 6 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] =OK= 100 500 00 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
+[NAME] =OK= 25 125 0 [7 days] 9 4 10 00 [7 days] 0 0 0 00 [--------]
*** unmount
*** pqnoenforce
@@ -172,22 +172,22 @@ realtime =RDEV extsz=XXX blocks=XXX, rtextents=XXX
*** report initial settings
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 1 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft inode limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 0 100 500 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 0 25 125 00 [--------] 5 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the soft block limit
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 6 4 10 00 [--------] 0 0 0 00 [--------]
*** push past the hard inode limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 140 100 500 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 35 25 125 00 [--------] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** push past the hard block limit (expect EDQUOT)
[ROOT] 0 0 0 00 [--------] 3 0 0 00 [--------] 0 0 0 00 [--------]
-[NAME] 540 100 500 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
+[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------]
*** unmount
--
2.9.5
next prev parent reply other threads:[~2018-09-12 11:27 UTC|newest]
Thread overview: 29+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-12 6:26 [PATCH V3 00/19] Fix tests to work on non-4k block sized fs instances Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 01/19] Fix xfs/009 to work with 64k block size Chandan Rajendra
2018-09-17 22:59 ` Darrick J. Wong
2018-09-18 3:18 ` Theodore Y. Ts'o
2018-09-18 3:27 ` Darrick J. Wong
2018-09-18 6:02 ` Chandan Rajendra
2018-09-18 14:36 ` Darrick J. Wong
2018-09-12 6:26 ` [PATCH V3 02/19] xfs/050: Fix "Push past soft inode limit" case Chandan Rajendra
2018-09-12 6:26 ` Chandan Rajendra [this message]
2018-09-12 6:26 ` [PATCH V3 04/19] Fix xfs/074 to work with 64k block size Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 05/19] Fix xfs/127 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 06/19] Fix xfs/139 " Chandan Rajendra
2018-09-17 22:29 ` Darrick J. Wong
2018-09-18 8:46 ` Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 07/19] Fix xfs/140 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 08/19] Fix xfs/190 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 09/19] Fix xfs/299 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 10/19] xfs/325: Inject free_extent error after CoW operation Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 11/19] Fix generic/102 to work with 64k block size Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 12/19] Fix generic/172 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 13/19] Filter fiemap output by FS " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 14/19] Fix generic/177 to work with 64k " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 15/19] Fix generic/230 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 16/19] Fix generic/235 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 17/19] Fix generic/459 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 18/19] Fix generic/018 " Chandan Rajendra
2018-09-12 6:26 ` [PATCH V3 19/19] Fix generic/108 " Chandan Rajendra
2018-09-18 5:20 ` [PATCH V3 00/19] Fix tests to work on non-4k block sized fs instances Zorro Lang
2018-09-18 10:28 ` Chandan Rajendra
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20180912062626.14349-4-chandan@linux.vnet.ibm.com \
--to=chandan@linux.vnet.ibm.com \
--cc=darrick.wong@oracle.com \
--cc=fstests@vger.kernel.org \
--cc=guaneryu@gmail.com \
--cc=linux-xfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.