From patchwork Thu Aug 16 07:26:39 2018 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Chandan Rajendra X-Patchwork-Id: 10567091 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 8962D913 for ; Thu, 16 Aug 2018 07:25:54 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6AF422A9DE for ; Thu, 16 Aug 2018 07:25:54 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5ED3E2AA02; Thu, 16 Aug 2018 07:25:54 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.9 required=2.0 tests=BAYES_00,MAILING_LIST_MULTI, RCVD_IN_DNSWL_HI autolearn=ham version=3.3.1 Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 7754E2A9DE for ; Thu, 16 Aug 2018 07:25:53 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731269AbeHPKWW (ORCPT ); Thu, 16 Aug 2018 06:22:22 -0400 Received: from mx0b-001b2d01.pphosted.com ([148.163.158.5]:42860 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1727882AbeHPKWV (ORCPT ); Thu, 16 Aug 2018 06:22:21 -0400 Received: from pps.filterd (m0098419.ppops.net [127.0.0.1]) by mx0b-001b2d01.pphosted.com (8.16.0.22/8.16.0.22) with SMTP id w7G7P7W8072042 for ; Thu, 16 Aug 2018 03:25:51 -0400 Received: from e33.co.us.ibm.com (e33.co.us.ibm.com [32.97.110.151]) by mx0b-001b2d01.pphosted.com with ESMTP id 2kvynwjes1-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 16 Aug 2018 03:25:50 -0400 Received: from localhost by e33.co.us.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 16 Aug 2018 01:25:49 -0600 Received: from b03cxnp08025.gho.boulder.ibm.com (9.17.130.17) by e33.co.us.ibm.com (192.168.1.133) with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted; (version=TLSv1/SSLv3 cipher=AES256-GCM-SHA384 bits=256/256) Thu, 16 Aug 2018 01:25:46 -0600 Received: from b03ledav004.gho.boulder.ibm.com (b03ledav004.gho.boulder.ibm.com [9.17.130.235]) by b03cxnp08025.gho.boulder.ibm.com (8.14.9/8.14.9/NCO v10.0) with ESMTP id w7G7Pkit22282648 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-GCM-SHA384 bits=256 verify=FAIL); Thu, 16 Aug 2018 00:25:46 -0700 Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id E25A57805C; Thu, 16 Aug 2018 01:25:45 -0600 (MDT) Received: from b03ledav004.gho.boulder.ibm.com (unknown [127.0.0.1]) by IMSVA (Postfix) with ESMTP id 2CBBF7805F; Thu, 16 Aug 2018 01:25:44 -0600 (MDT) Received: from localhost.localdomain.com (unknown [9.199.32.128]) by b03ledav004.gho.boulder.ibm.com (Postfix) with ESMTP; Thu, 16 Aug 2018 01:25:43 -0600 (MDT) From: Chandan Rajendra To: fstests@vger.kernel.org Cc: Chandan Rajendra , eguan@redhat.com, darrick.wong@oracle.com Subject: [PATCH 09/16] Fix xfs/299 to work with 64k block size Date: Thu, 16 Aug 2018 12:56:39 +0530 X-Mailer: git-send-email 2.9.5 In-Reply-To: <20180816072646.14490-1-chandan@linux.vnet.ibm.com> References: <20180816072646.14490-1-chandan@linux.vnet.ibm.com> X-TM-AS-GCONF: 00 x-cbid: 18081607-0036-0000-0000-00000A23B5BC X-IBM-SpamModules-Scores: X-IBM-SpamModules-Versions: BY=3.00009553; HX=3.00000242; KW=3.00000007; PH=3.00000004; SC=3.00000266; SDB=6.01074235; UDB=6.00553573; IPR=6.00854192; MB=3.00022746; MTD=3.00000008; XFM=3.00000015; UTC=2018-08-16 07:25:48 X-IBM-AV-DETECTION: SAVI=unused REMOTE=unused XFE=unused x-cbparentid: 18081607-0037-0000-0000-00004899974F Message-Id: <20180816072646.14490-10-chandan@linux.vnet.ibm.com> X-Proofpoint-Virus-Version: vendor=fsecure engine=2.50.10434:,, definitions=2018-08-16_03:,, signatures=0 X-Proofpoint-Spam-Details: rule=outbound_notspam policy=outbound score=0 priorityscore=1501 malwarescore=0 suspectscore=1 phishscore=0 bulkscore=0 spamscore=0 clxscore=1015 lowpriorityscore=0 mlxscore=0 impostorscore=0 mlxlogscore=999 adultscore=0 classifier=spam adjust=0 reason=mlx scancount=1 engine=8.0.1-1807170000 definitions=main-1808160080 Sender: fstests-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: fstests@vger.kernel.org X-Virus-Scanned: ClamAV using ClamSMTP 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 --- tests/xfs/299 | 23 +++++++++++++-------- tests/xfs/299.out | 60 +++++++++++++++++++++++++++---------------------------- 2 files changed, 45 insertions(+), 38 deletions(-) diff --git a/tests/xfs/299 b/tests/xfs/299 index f0012ff..99e1567 100755 --- a/tests/xfs/299 +++ b/tests/xfs/299 @@ -41,8 +41,10 @@ _require_xfs_quota _require_xfs_mkfs_crc _require_xfs_crc -bsoft=100 -bhard=500 +bsize=$(_get_block_size $TEST_DIR) + +bsoft=$(( 25 * $bsize )) +bhard=$(( 125 * $bsize )) isoft=4 ihard=10 @@ -58,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 @@ -73,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; } @@ -128,7 +133,7 @@ _exercise() echo "ls -l $SCRATCH_MNT" >>$seqres.full ls -l $SCRATCH_MNT >>$seqres.full xfs_quota -D $tmp.projects -P $tmp.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 \ @@ -139,6 +144,8 @@ _exercise() echo "*** push past the soft inode limit" | tee -a $seqres.full _file_as_id $SCRATCH_MNT/softie1 $id $type 1024 0 _file_as_id $SCRATCH_MNT/softie2 $id $type 1024 0 + _file_as_id $SCRATCH_MNT/softie3 $id $type 1024 0 + _file_as_id $SCRATCH_MNT/softie4 $id $type 1024 0 _qmount xfs_quota -D $tmp.projects -P $tmp.projid -x \ -c "repquota -birnN -$type" $SCRATCH_DEV | @@ -146,7 +153,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 | @@ -167,7 +174,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/299.out b/tests/xfs/299.out index d13c7da..93e89a9 100644 --- a/tests/xfs/299.out +++ b/tests/xfs/299.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 [--------] 3 4 10 00 [--------] 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] 4 4 10 00 [--------] 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 [--------] *** report no quota settings @@ -36,23 +36,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 [--------] 3 4 10 00 [--------] 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] 4 4 10 00 [--------] 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 [--------] *** report no quota settings @@ -60,23 +60,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 [--------] 3 4 10 00 [--------] 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] 4 4 10 00 [--------] 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 meta-data=DDEV isize=XXX agcount=N, agsize=XXX blks @@ -92,23 +92,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 [--------] 3 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 [--------] 4 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 [--------] 16 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--] 16 4 10 00 [--none--] 0 0 0 00 [--------] +[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------] *** report no quota settings @@ -116,23 +116,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 [--------] 3 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 [--------] 4 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 [--------] 16 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--] 16 4 10 00 [--none--] 0 0 0 00 [--------] +[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------] *** report no quota settings @@ -140,22 +140,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 [--------] 3 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 [--------] 4 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 [--------] 16 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--] 16 4 10 00 [--none--] 0 0 0 00 [--------] +[NAME] 135 25 125 00 [--none--] 18 4 10 00 [--none--] 0 0 0 00 [--------] *** unmount