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 <[email protected]>
---
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
On Fri, Apr 11, 2014 at 05:43:07PM -0400, Eric Whitney wrote:
> 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 <[email protected]>
Makes sense. Same for the second patch, too.
Reviewed-by: Dave Chinner <[email protected]>
--
Dave Chinner
[email protected]