[PATCH v4] Make test 272 work for ext3
Jan Kara
jack at suse.cz
Thu Aug 16 04:14:35 CDT 2012
ext3 does not support direct IO for files with data journalling. This
confuses test 272. Make the test check whether open succeeds and perform
the writing only if it does.
Thanks for Dave Chinner for suggesting a simpler way to fix the test.
Reviewed-by: Dave Chinner <dchinner at redhat.com>
Signed-off-by: Jan Kara <jack at suse.cz>
---
272 | 14 ++++++++------
272.out | 36 +-----------------------------------
2 files changed, 9 insertions(+), 41 deletions(-)
diff --git a/272 b/272
index 26dfa3b..c7f1efc 100755
--- a/272
+++ b/272
@@ -32,15 +32,17 @@ tmp=/tmp/$$
status=1 # failure is the default!
trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
+# ext3 doesn't support direct IO in journalling mode
+write_opt_list="iflag=noatime conv=notrunc conv=fsync"
+# For filesystems that can handle it, add also direct IO test
+[ $FSTYP = "ext4" ] && write_opt_list="$write_opt_list oflag=direct"
+
# get standard environment, filters and checks
. ./common.rc
. ./common.filter
_workout()
{
- echo ""
- echo " Switch data journalling mode"
- echo ""
- write_opt_list="iflag=noatime conv=notrunc conv=fsync oflag=direct"
+ echo "Switch data journalling mode. Silence is golden."
chattr_opt_list="+j -j +jS -j"
idx=0
#
@@ -51,7 +53,7 @@ _workout()
do
echo "OP write_opt: $write_opt 4M, \
-chattr_opt: $chattr_opt"
+chattr_opt: $chattr_opt" >>$seq.full
dd if=/dev/zero of=$SCRATCH_MNT/file.$idx \
bs=1M count=4 $write_opt \
>> $seq.full 2>&1 || exit
@@ -69,7 +71,7 @@ chattr_opt: $chattr_opt"
do
echo "OP write_opt: $write_opt ENOSPC, \
-chattr_opt: $chattr_opt"
+chattr_opt: $chattr_opt" >>$seq.full
dd if=/dev/zero of=$SCRATCH_MNT/file.$idx \
bs=1M $write_opt >> $seq.full 2>&1
chattr $chattr_opt $SCRATCH_MNT/file.$idx \
diff --git a/272.out b/272.out
index cc687aa..a9eaf84 100644
--- a/272.out
+++ b/272.out
@@ -1,37 +1,3 @@
QA output created by 272
-
- Switch data journalling mode
-
-OP write_opt: iflag=noatime 4M, chattr_opt: +j
-OP write_opt: iflag=noatime 4M, chattr_opt: -j
-OP write_opt: iflag=noatime 4M, chattr_opt: +jS
-OP write_opt: iflag=noatime 4M, chattr_opt: -j
-OP write_opt: conv=notrunc 4M, chattr_opt: +j
-OP write_opt: conv=notrunc 4M, chattr_opt: -j
-OP write_opt: conv=notrunc 4M, chattr_opt: +jS
-OP write_opt: conv=notrunc 4M, chattr_opt: -j
-OP write_opt: conv=fsync 4M, chattr_opt: +j
-OP write_opt: conv=fsync 4M, chattr_opt: -j
-OP write_opt: conv=fsync 4M, chattr_opt: +jS
-OP write_opt: conv=fsync 4M, chattr_opt: -j
-OP write_opt: oflag=direct 4M, chattr_opt: +j
-OP write_opt: oflag=direct 4M, chattr_opt: -j
-OP write_opt: oflag=direct 4M, chattr_opt: +jS
-OP write_opt: oflag=direct 4M, chattr_opt: -j
-OP write_opt: iflag=noatime ENOSPC, chattr_opt: +j
-OP write_opt: iflag=noatime ENOSPC, chattr_opt: -j
-OP write_opt: iflag=noatime ENOSPC, chattr_opt: +jS
-OP write_opt: iflag=noatime ENOSPC, chattr_opt: -j
-OP write_opt: conv=notrunc ENOSPC, chattr_opt: +j
-OP write_opt: conv=notrunc ENOSPC, chattr_opt: -j
-OP write_opt: conv=notrunc ENOSPC, chattr_opt: +jS
-OP write_opt: conv=notrunc ENOSPC, chattr_opt: -j
-OP write_opt: conv=fsync ENOSPC, chattr_opt: +j
-OP write_opt: conv=fsync ENOSPC, chattr_opt: -j
-OP write_opt: conv=fsync ENOSPC, chattr_opt: +jS
-OP write_opt: conv=fsync ENOSPC, chattr_opt: -j
-OP write_opt: oflag=direct ENOSPC, chattr_opt: +j
-OP write_opt: oflag=direct ENOSPC, chattr_opt: -j
-OP write_opt: oflag=direct ENOSPC, chattr_opt: +jS
-OP write_opt: oflag=direct ENOSPC, chattr_opt: -j
+Switch data journalling mode. Silence is golden.
Check filesystem
--
1.7.1
--k1lZvvs/B4yU6o8G--
More information about the xfs
mailing list