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 <[email protected]>
---
common/rc | 2 ++
1 file changed, 2 insertions(+)
diff --git a/common/rc b/common/rc
index 9216efdb..86cc9665 100644
--- 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
--
2.11.0
On Wed, Jan 10, 2018 at 04:19:05PM -0500, Eric Whitney wrote:
> 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 <[email protected]>
Reviewed-by: Theodore Ts'o <[email protected]>