Generic/300 fails when run on a test filesystem that does not support fallocate(). It uses fio's falloc ioengine to generate part of its I/O load and both allocates blocks and punches holes. This causes EOPNOTSUPP failures when the test is run on indirect block-mapped ext4 filesystems or pre-3.14 ext4 filesystems created with bigalloc. Verify that the test filesystem supports fallocate() before proceeding with the test, checking for both block allocation and hole punching capabilities. Also, delete any pre-existing test output. Signed-off-by: Eric Whitney <enwlinux@xxxxxxxxx> --- tests/generic/300 | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/generic/300 b/tests/generic/300 index 7c60728..4e07f8a 100755 --- a/tests/generic/300 +++ b/tests/generic/300 @@ -44,6 +44,13 @@ _supported_os Linux _need_to_be_root _require_scratch +# 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 +_require_xfs_io_falloc +_require_xfs_io_falloc_punch + +rm -f $seqres.full + NUM_JOBS=$((4*LOAD_FACTOR)) BLK_DEV_SIZE=`blockdev --getsz $SCRATCH_DEV` if [ $((BLK_DEV_SIZE)) -gt 1048576 ] -- 1.8.3.2 -- To unsubscribe from this list: send the line "unsubscribe linux-ext4" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html