common/rc: ext4 doesn't support O_DIRECT with data journaling
authorEric Whitney <enwlinux@gmail.com>
Wed, 10 Jan 2018 21:19:05 +0000 (16:19 -0500)
committerEryu Guan <eguan@redhat.com>
Fri, 12 Jan 2018 03:40:13 +0000 (11:40 +0800)
Modify _require_odirect() to skip O_DIRECT tests if the ext4 mount
option data=journal has been applied.  Because ext4 disables its
O_DIRECT support when in data journaling mode, no significant value
is obtained by running these tests and they consume a significant
amount of run time.  Additionally, this change eliminates the need
to triage false negative O_DIRECT test results caused by test
problems, as has occurred from time to time.

Signed-off-by: Eric Whitney <enwlinux@gmail.com>
Reviewed-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/rc

index d47c1dbe875267f5d6aef2f9c5f2aee5294e804a..fa3b215072049e574ab603cfe0c5e67159f874ff 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -2150,6 +2150,8 @@ _require_odirect()
        if [ $FSTYP = "ext4" ] ; then
                if echo "$MOUNT_OPTIONS" | grep -q "test_dummy_encryption"; then
                        _notrun "ext4 encryption doesn't support O_DIRECT"
+               elif echo "$MOUNT_OPTIONS" | grep -q "data=journal"; then
+                       _notrun "ext4 data journaling doesn't support O_DIRECT"
                fi
        fi
        testfile=$TEST_DIR/$$.direct