From 9b154b26e4a1d6d4b8d0ccf388bb2b9312eb7a76 Mon Sep 17 00:00:00 2001 From: Theodore Ts'o Date: Tue, 28 Jun 2016 21:32:55 -0400 Subject: [PATCH] common/rc: ext4 doesn't support O_DIRECT with encryption Teach _require_odirect to skip the O_DIRECT tests if the ext4 mount option "test_dummy_encryption" is enabled, since O_DIRECT doesen't make sense when file system level encryption is enabled, and several tests which use O_DIRECT --- ext4/301, ext4/304, generic/250 and generic/252 --- fail when encryption is enabled. Signed-off-by: Theodore Ts'o Reviewed-by: Eryu Guan Signed-off-by: Eryu Guan --- common/rc | 17 +++++++++++------ 1 file changed, 11 insertions(+), 6 deletions(-) diff --git a/common/rc b/common/rc index 883bd7b9..32fa8f2b 100644 --- a/common/rc +++ b/common/rc @@ -1928,12 +1928,17 @@ _require_xfs_db_command() # check that kernel and filesystem support direct I/O _require_odirect() { - testfile=$TEST_DIR/$$.direct - $XFS_IO_PROG -F -f -d -c "pwrite 0 20k" $testfile > /dev/null 2>&1 - if [ $? -ne 0 ]; then - _notrun "O_DIRECT is not supported" - fi - rm -f $testfile 2>&1 > /dev/null + if [ $FSTYP = "ext4" ] ; then + if echo "$MOUNT_OPTIONS" | grep -q "test_dummy_encryption"; then + _notrun "ext4 encryption doesn't support O_DIRECT" + fi + fi + testfile=$TEST_DIR/$$.direct + $XFS_IO_PROG -F -f -d -c "pwrite 0 20k" $testfile > /dev/null 2>&1 + if [ $? -ne 0 ]; then + _notrun "O_DIRECT is not supported" + fi + rm -f $testfile 2>&1 > /dev/null } # Check that a fs has enough free space (in 1024b blocks) -- 2.39.5