From: Eric Sandeen <sandeen@redhat.com>
To: xfs mailing list <xfs@oss.sgi.com>,
ext4 development <linux-ext4@vger.kernel.org>
Cc: Theodore Tso <tytso@mit.edu>
Subject: [PATCH] xfstests: add another fallocate test to 214
Date: Mon, 04 Jan 2010 17:18:09 -0600 [thread overview]
Message-ID: <4B427731.9080801@redhat.com> (raw)
ext4 had a regression where it double-accounted used blocks
if you fallocated on top of delalloc blocks. Ted sent a
c program to exploit it (see "fsstress-induced corruption reproduced"
on linux-ext4 on 12/31/2009) and it's trivial to do the same thing
within the xfstests framework using xfs_io.
This also changes the handcrafted xfs_io tests to use the
_require_xfs_io_falloc helper, not sure how that got missed.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
diff --git a/214 b/214
index 98cfc3a..35ec2cb 100755
--- a/214
+++ b/214
@@ -52,14 +52,7 @@ _supported_os Linux
rm -f $seq.full
-testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $TEST_DIR/$tmp.io 2>&1`
-
-# Old xfs_io doesn't have fallocate support
-echo $testio | grep -q "not found" && \
- _notrun "xfs_io fallocate support is missing"
-# Old glibc, old kernels, and some filesystems don't have fallocate support
-echo $testio | grep -q "Operation not supported" && \
- _notrun "xfs_io fallocate command failed (old kernel? wrong fs?)"
+_require_xfs_io_falloc
# Ok, off we go.
@@ -126,6 +119,20 @@ $XFS_IO_PROG -F -f -d \
rm -f $TEST_DIR/ouch
+# Reported by Ted Ts'o on linux-ext4, 12/31/2009
+# double-allocation on ext4 when fallocating over delalloc blocks
+# Regression due to d21cd8f163ac44b15c465aab7306db931c606908
+
+echo "=== delalloc write 16k; fallocate same range ==="
+# delalloc write 16k, fallocate same range.
+# Should get caught on fsck when we're done.
+
+$XFS_IO_PROG -F -f \
+ -c "pwrite 0 16k" \
+ -c "falloc 0 16k" \
+ -c "fsync" \
+ $TEST_DIR/ouch2 | _filter_xfs_io_unique
+
# success, all done
status=0
exit
WARNING: multiple messages have this Message-ID (diff)
From: Eric Sandeen <sandeen@redhat.com>
To: xfs mailing list <xfs@oss.sgi.com>,
ext4 development <linux-ext4@vger.kernel.org>
Cc: Theodore Tso <tytso@mit.edu>
Subject: [PATCH] xfstests: add another fallocate test to 214
Date: Mon, 04 Jan 2010 17:18:09 -0600 [thread overview]
Message-ID: <4B427731.9080801@redhat.com> (raw)
ext4 had a regression where it double-accounted used blocks
if you fallocated on top of delalloc blocks. Ted sent a
c program to exploit it (see "fsstress-induced corruption reproduced"
on linux-ext4 on 12/31/2009) and it's trivial to do the same thing
within the xfstests framework using xfs_io.
This also changes the handcrafted xfs_io tests to use the
_require_xfs_io_falloc helper, not sure how that got missed.
Signed-off-by: Eric Sandeen <sandeen@redhat.com>
---
diff --git a/214 b/214
index 98cfc3a..35ec2cb 100755
--- a/214
+++ b/214
@@ -52,14 +52,7 @@ _supported_os Linux
rm -f $seq.full
-testio=`$XFS_IO_PROG -F -f -c "falloc 0 1m" $TEST_DIR/$tmp.io 2>&1`
-
-# Old xfs_io doesn't have fallocate support
-echo $testio | grep -q "not found" && \
- _notrun "xfs_io fallocate support is missing"
-# Old glibc, old kernels, and some filesystems don't have fallocate support
-echo $testio | grep -q "Operation not supported" && \
- _notrun "xfs_io fallocate command failed (old kernel? wrong fs?)"
+_require_xfs_io_falloc
# Ok, off we go.
@@ -126,6 +119,20 @@ $XFS_IO_PROG -F -f -d \
rm -f $TEST_DIR/ouch
+# Reported by Ted Ts'o on linux-ext4, 12/31/2009
+# double-allocation on ext4 when fallocating over delalloc blocks
+# Regression due to d21cd8f163ac44b15c465aab7306db931c606908
+
+echo "=== delalloc write 16k; fallocate same range ==="
+# delalloc write 16k, fallocate same range.
+# Should get caught on fsck when we're done.
+
+$XFS_IO_PROG -F -f \
+ -c "pwrite 0 16k" \
+ -c "falloc 0 16k" \
+ -c "fsync" \
+ $TEST_DIR/ouch2 | _filter_xfs_io_unique
+
# success, all done
status=0
exit
_______________________________________________
xfs mailing list
xfs@oss.sgi.com
http://oss.sgi.com/mailman/listinfo/xfs
next reply other threads:[~2010-01-04 23:18 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-01-04 23:18 Eric Sandeen [this message]
2010-01-04 23:18 ` [PATCH] xfstests: add another fallocate test to 214 Eric Sandeen
2010-01-06 16:49 ` Christoph Hellwig
2010-01-06 16:49 ` Christoph Hellwig
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=4B427731.9080801@redhat.com \
--to=sandeen@redhat.com \
--cc=linux-ext4@vger.kernel.org \
--cc=tytso@mit.edu \
--cc=xfs@oss.sgi.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.