2018-01-10 21:19:09

by Eric Whitney

[permalink] [raw]
Subject: [PATCH] common/rc: ext4 doesn't support O_DIRECT with data journaling

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


2018-01-11 18:21:24

by Theodore Ts'o

[permalink] [raw]
Subject: Re: [PATCH] common/rc: ext4 doesn't support O_DIRECT with data journaling

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]>