From: Theodore Ts'o Date: Wed, 29 Jun 2016 01:32:55 +0000 (-0400) Subject: common/rc: ext4 doesn't support O_DIRECT with encryption X-Git-Tag: v2022.05.01~2468 X-Git-Url: http://git.apps.os.sepia.ceph.com/?a=commitdiff_plain;h=9b154b26e4a1d6d4b8d0ccf388bb2b9312eb7a76;p=xfstests-dev.git 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 --- 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)