@@ -2340,6 +2340,38 @@ _require_norecovery()
_scratch_unmount
}
+# Does this filesystem support metadata journaling?
+# We exclude ones here that don't; otherwise we assume that it does, so the
+# test will run, fail, and motivate someone to update this test for a new
+# filesystem.
+#
+# It's possible that TEST_DEV and SCRATCH_DEV have different features (it'd be
+# odd, but possible) so check $TEST_DEV by default, but we can optionall pass
+# any dev we want.
+_require_metadata_journaling()
+{
+ if [ -z $1 ]; then
+ DEV=$TEST_DEV
+ else
+ DEV=$1
+ fi
+
+ case "$FSTYP" in
+ ext2|vfat|msdos)
+ _notrun "$FSTYP does not support metadata journaling"
+ ;;
+ ext4)
+ # ext4 could be mkfs'd without a journal...
+ _require_dumpe2fs
+ $DUMPE2FS_PROG -h $DEV | grep has_journal || \
+ _notrun "$FSTYP on $DEV not configured with metadata journaling"
+ ;;
+ *)
+ # by default we pass; if you need to, add your fs above!
+ ;;
+ esac
+}
+
# Does fiemap support?
_require_fiemap()
{
@@ -53,6 +53,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -62,6 +62,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -66,6 +66,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -55,6 +55,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -55,6 +55,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -56,6 +56,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch_nocheck
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
# xfs_io is not required for this test, but it's the best way to verify
# the test system supports fallocate() for allocation
@@ -45,6 +45,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch_nocheck
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
@@ -45,6 +45,7 @@ _supported_os Linux
_need_to_be_root
_require_scratch_nocheck
_require_dm_flakey
+_require_metadata_journaling $SCRATCH_DEV
rm -f $seqres.full
Many tests use dm_flakey to trigger log replay, but for filesystems that don't support metadata journaling, this causes failures when it shouldn't. (i.e. we can hardly test log replay if there is no log). For some tests they actually sync everything we care about, and find inconsistencies elsewhere, but I erred on the side of simply not running the test in most cases. Signed-off-by: Eric Sandeen <sandeen@redhat.com> --- v2: MOAR COLUMNS. Add default case. -- To unsubscribe from this list: send the line "unsubscribe fstests" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html