All of lore.kernel.org
 help / color / mirror / Atom feed
From: Eryu Guan <eguan@redhat.com>
To: fstests@vger.kernel.org
Cc: Lukas Czerner <lczerner@redhat.com>, Eryu Guan <eguan@redhat.com>
Subject: [PATCH v4] generic: test bug when zero range is crossing isize within single block
Date: Wed, 24 Jun 2015 19:05:25 +0800	[thread overview]
Message-ID: <1435143925-10037-1-git-send-email-eguan@redhat.com> (raw)

From: Lukas Czerner <lczerner@redhat.com>

Exercise the situation that cause ext4 to BUG_ON() when we use
zero range to zero a range which starts within the isize but ends
past the isize but still in the same block. This particular problem
has only been seen on systems with page_size > block_size.

This tests exercises the problem fixed in kernel with commit
0f2af21aae11972fa924374ddcf52e88347cf5a8
ext4: Allocate entire range in zero range

Signed-off-by: Lukas Czerner <lczerner@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
---

This patch got lost in previous fstests updates, I did minor updates and resent.

v4:
- Use scratch dev instead of test dev, it's easy and common to test page_size > block_size scenario on scratch device
- Add "Silence is golden" to indicate test expects no output
- Renumber to generic/094

 tests/generic/094     | 64 +++++++++++++++++++++++++++++++++++++++++++++++++++
 tests/generic/094.out |  2 ++
 tests/generic/group   |  1 +
 3 files changed, 67 insertions(+)
 create mode 100755 tests/generic/094
 create mode 100644 tests/generic/094.out

diff --git a/tests/generic/094 b/tests/generic/094
new file mode 100755
index 0000000..602e5b6
--- /dev/null
+++ b/tests/generic/094
@@ -0,0 +1,64 @@
+#! /bin/bash
+# FS QA Test 094
+#
+# Exercise the situation that cause ext4 to BUG_ON() when we use
+# zero range to zero a range which starts within the isize but ends
+# past the isize but still in the same block. This particular problem
+# has only been seen on systems with page_size > block_size.
+#
+#-----------------------------------------------------------------------
+# Copyright (c) 2015 Red Hat, Inc., Lukas Czerner <lczerner@redhat.com>
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms 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.  See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write the Free Software Foundation,
+# Inc.,  51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
+#-----------------------------------------------------------------------
+#
+
+seq=`basename $0`
+seqres=$RESULT_DIR/$seq
+echo "QA output created by $seq"
+
+here=`pwd`
+tmp=/tmp/$$
+status=1	# failure is the default!
+trap "_cleanup; exit \$status" 0 1 2 3 15
+
+_cleanup()
+{
+	cd /
+	rm -f $tmp.*
+}
+
+# get standard environment, filters and checks
+. ./common/rc
+. ./common/filter
+
+# real QA test starts here
+_supported_fs generic
+_supported_os IRIX Linux
+_require_scratch
+_require_xfs_io_command "fzero"
+
+rm -f $seqres.full
+echo "Silence is golden"
+
+# Use smaller scratch fs to shorten the test time
+_scratch_mkfs_sized $((512 * 1024 * 1024)) >>$seqres.full 2>&1
+_scratch_mount
+
+testfile=$SCRATCH_MNT/$seq.$$
+$XFS_IO_PROG -f -c "pwrite 4096 512" -c "fzero 4351 512" $testfile >> $seqres.full 2>&1
+
+# success, all done
+status=0
+exit
diff --git a/tests/generic/094.out b/tests/generic/094.out
new file mode 100644
index 0000000..bcdcf29
--- /dev/null
+++ b/tests/generic/094.out
@@ -0,0 +1,2 @@
+QA output created by 094
+Silence is golden
diff --git a/tests/generic/group b/tests/generic/group
index ca15a3f..fcca238 100644
--- a/tests/generic/group
+++ b/tests/generic/group
@@ -96,6 +96,7 @@
 091 rw auto quick
 092 auto quick prealloc
 093 attr cap udf auto
+094 auto prealloc quick
 097 udf auto
 099 udf auto
 100 udf auto
-- 
2.4.3


             reply	other threads:[~2015-06-24 11:05 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-06-24 11:05 Eryu Guan [this message]
2015-08-07  8:25 ` [PATCH v4] generic: test bug when zero range is crossing isize within single block Xiong Zhou
2015-08-07  9:50   ` Eryu Guan

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=1435143925-10037-1-git-send-email-eguan@redhat.com \
    --to=eguan@redhat.com \
    --cc=fstests@vger.kernel.org \
    --cc=lczerner@redhat.com \
    /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.