From: Chandan Rajendra <chandan@linux.vnet.ibm.com>
To: fstests@vger.kernel.org
Cc: Chandan Rajendra <chandan@linux.vnet.ibm.com>,
eguan@redhat.com, darrick.wong@oracle.com,
linux-xfs@vger.kernel.org
Subject: [PATCH V2 04/16] Fix xfs/074 to work with 64k block size
Date: Thu, 6 Sep 2018 14:10:01 +0530 [thread overview]
Message-ID: <20180906084013.2687-5-chandan@linux.vnet.ibm.com> (raw)
In-Reply-To: <20180906084013.2687-1-chandan@linux.vnet.ibm.com>
This commit makes file and extent size calculations to be a function of
the filesystem's block size. It also adds a brief description of the
bug that is being tested.
Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
---
tests/xfs/074 | 23 +++++++++++++++++++----
1 file changed, 19 insertions(+), 4 deletions(-)
diff --git a/tests/xfs/074 b/tests/xfs/074
index e5888d5..1e1e16e 100755
--- a/tests/xfs/074
+++ b/tests/xfs/074
@@ -7,6 +7,18 @@
# Check some extent size hint boundary conditions that can result in
# MAXEXTLEN overflows.
#
+# In xfs_bmap_extsize_align(), we had,
+# if ((temp = (align_alen % extsz))) {
+# align_alen += extsz - temp;
+# }
+# align_alen had the value of 2097151 (i.e. MAXEXTLEN) blocks. extsz had
+# the value of 4096 blocks.
+#
+# align_alen % extsz will be 4095. so align_alen will end up having
+# 2097151 + (4096 - 4095) = 2097152 i.e. (MAXEXTLEN + 1). Thus the length
+# of the new extent will be larger than MAXEXTLEN. This will later cause
+# the bmbt leaf to have an entry whose length is set to zero block count.
+#
seq=`basename $0`
seqres=$RESULT_DIR/$seq
echo "QA output created by $seq"
@@ -46,19 +58,22 @@ mkdir -p $LOOP_MNT
$XFS_IO_PROG -ft -c "truncate 1t" $LOOP_FILE >> $seqres.full
LOOP_DEV=`_create_loop_device $LOOP_FILE`
-_mkfs_dev -d size=156452m,agcount=4 -l size=32m $LOOP_DEV
+_mkfs_dev -d size=260g,agcount=2 $LOOP_DEV
_mount $LOOP_DEV $LOOP_MNT
+BLOCK_SIZE=$(_get_block_size $LOOP_MNT)
+
# Corrupt the BMBT by creating extents larger than MAXEXTLEN
+# For 4k blocksize, MAXEXTLEN * 4k = 2097151 * 4k = 8589930496 = ~8GiB
$XFS_IO_PROG -ft \
- -c "extsize 16m" \
- -c "falloc 0 30g" \
+ -c "extsize $(($BLOCK_SIZE * 4096))" \
+ -c "falloc 0 $(($BLOCK_SIZE * 2097152))" \
$LOOP_MNT/foo >> $seqres.full
umount $LOOP_MNT
_check_xfs_filesystem $LOOP_DEV none none
-_mkfs_dev -f -l size=32m $LOOP_DEV
+_mkfs_dev -f $LOOP_DEV
_mount $LOOP_DEV $LOOP_MNT
# check we trim both ends of the extent approproiately; this will fail
--
2.9.5
next prev parent reply other threads:[~2018-09-06 13:12 UTC|newest]
Thread overview: 17+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-09-06 8:39 [PATCH V2 00/16] Fix tests to work on non-4k block sized fs instances Chandan Rajendra
2018-09-06 8:39 ` [PATCH V2 01/16] Fix xfs/009 to work with 64k block size Chandan Rajendra
2018-09-06 8:39 ` [PATCH V2 02/16] xfs/050: Fix "Push past soft inode limit" case Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 03/16] Fix xfs/050 to work with 64k block size Chandan Rajendra
2018-09-06 8:40 ` Chandan Rajendra [this message]
2018-09-06 8:40 ` [PATCH V2 05/16] Fix xfs/127 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 06/16] Fix xfs/139 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 07/16] Fix xfs/140 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 08/16] Fix xfs/190 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 09/16] Fix xfs/299 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 10/16] xfs/325: Inject free_extent error after CoW operation Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 11/16] Fix generic/102 to work with 64k block size Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 12/16] Fix generic/172 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 13/16] Filter fiemap output by FS " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 14/16] Fix generic/177 to work with 64k " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 15/16] Fix generic/230 " Chandan Rajendra
2018-09-06 8:40 ` [PATCH V2 16/16] Fix generic/235 " 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=20180906084013.2687-5-chandan@linux.vnet.ibm.com \
--to=chandan@linux.vnet.ibm.com \
--cc=darrick.wong@oracle.com \
--cc=eguan@redhat.com \
--cc=fstests@vger.kernel.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).