mirror of
https://github.com/linux-apfs/apfstests.git
synced 2026-05-01 15:01:44 -07:00
Check O_DIRECT support before testing direct I/O
Some filesystems do not support O_DIRECT. Check whether TEST_DIR supports it by running xfs_io with -d flag. Signed-off-by: Junho Ryu <jayr@google.com> Signed-off-by: Dushan Tcholich <dusanc@gmail.com> Reviewed-by: Dave Chinner <dchinner@redhat.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
@@ -1402,6 +1402,7 @@ _require_aiodio()
|
||||
AIO_TEST=src/aio-dio-regress/$1
|
||||
[ -x $AIO_TEST ] || _notrun "$AIO_TEST not built"
|
||||
fi
|
||||
_require_odirect
|
||||
}
|
||||
|
||||
# run an aio-dio program
|
||||
@@ -1530,6 +1531,17 @@ _require_xfs_io_command()
|
||||
_notrun "xfs_io $command failed (old kernel/wrong fs?)"
|
||||
}
|
||||
|
||||
# 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
|
||||
}
|
||||
|
||||
# Check that a fs has enough free space (in 1024b blocks)
|
||||
#
|
||||
_require_fs_space()
|
||||
|
||||
@@ -39,6 +39,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
||||
_supported_fs generic
|
||||
_supported_os Linux
|
||||
_require_test
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
|
||||
@@ -50,6 +50,7 @@ _supported_os Linux IRIX
|
||||
|
||||
_require_scratch
|
||||
_require_sparse_files
|
||||
_require_odirect
|
||||
|
||||
_scratch_mkfs >/dev/null 2>&1
|
||||
_scratch_mount
|
||||
|
||||
@@ -39,6 +39,7 @@ trap "exit \$status" 0 1 2 3 15
|
||||
_supported_fs generic
|
||||
_supported_os Linux IRIX
|
||||
_require_test
|
||||
_require_odirect
|
||||
|
||||
echo "Buffered writer, buffered reader"
|
||||
$XFS_IO_PROG -f -d -c 'pwrite -b 64k 0 512m' $TEST_DIR/io_test > /dev/null
|
||||
|
||||
@@ -39,6 +39,7 @@ trap "exit \$status" 0 1 2 3 15
|
||||
_supported_fs generic
|
||||
_supported_os Linux IRIX
|
||||
|
||||
_require_odirect
|
||||
_require_scratch
|
||||
_scratch_mkfs >/dev/null 2>&1
|
||||
|
||||
|
||||
@@ -37,6 +37,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
||||
_supported_fs generic
|
||||
_supported_os Linux IRIX
|
||||
_require_scratch
|
||||
_require_odirect
|
||||
|
||||
# real QA test starts here
|
||||
rm -f $seqres.full
|
||||
|
||||
@@ -39,6 +39,7 @@ trap "rm -f $tmp.*; exit \$status" 0 1 2 3 15
|
||||
_supported_fs generic
|
||||
_supported_os Linux
|
||||
_require_test
|
||||
_require_odirect
|
||||
|
||||
rm -f $seqres.full
|
||||
|
||||
|
||||
@@ -43,6 +43,7 @@ _supported_fs generic
|
||||
_supported_os Linux
|
||||
_need_to_be_root
|
||||
_require_scratch
|
||||
_require_odirect
|
||||
|
||||
NUM_JOBS=$((4*LOAD_FACTOR))
|
||||
BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV`
|
||||
|
||||
@@ -43,6 +43,7 @@ _supported_fs generic
|
||||
_supported_os Linux
|
||||
_need_to_be_root
|
||||
_require_scratch
|
||||
_require_odirect
|
||||
|
||||
# xfs_io is not required for this test, but it's the best way to verify
|
||||
# the test system supports fallocate() for allocation and hole punching
|
||||
|
||||
Reference in New Issue
Block a user