linux-xfs.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
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

  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).