common/rc: Fix fcollapse require code to work with 64k block size
authorChandan Rajendra <chandan@linux.vnet.ibm.com>
Thu, 22 Feb 2018 05:58:55 +0000 (11:28 +0530)
committerEryu Guan <eguan@redhat.com>
Thu, 22 Feb 2018 08:12:12 +0000 (16:12 +0800)
For 64k block size, the require code fails because the block range
[4k, 12k] would cause the fcollapse syscall to return -EINVAL. Hence
the tests using them are not executed.

This commit fixes the issue by calculating file offset ranges based
on the block size of the underlying filesystem.

Signed-off-by: Chandan Rajendra <chandan@linux.vnet.ibm.com>
Reviewed-by: Eryu Guan <eguan@redhat.com>
Signed-off-by: Eryu Guan <eguan@redhat.com>
common/rc

index 51dc9f76284f1b557816fc3fa8c7ded6cbdb6fb2..a68e6cc0d99724d2254c684c942e5bc641a35db4 100644 (file)
--- a/common/rc
+++ b/common/rc
@@ -2113,8 +2113,10 @@ _require_xfs_io_command()
                param_checked=1
                ;;
        "fpunch" | "fcollapse" | "zero" | "fzero" | "finsert" | "funshare")
-               testio=`$XFS_IO_PROG -F -f -c "pwrite 0 20k" -c "fsync" \
-                       -c "$command 4k 8k" $testfile 2>&1`
+               local blocksize=$(_get_block_size $TEST_DIR)
+               testio=`$XFS_IO_PROG -F -f -c "pwrite 0 $((5 * $blocksize))" \
+                       -c "fsync" -c "$command $blocksize $((2 * $blocksize))" \
+                       $testfile 2>&1`
                ;;
        "fiemap")
                # If 'ranged' is passed as argument then we check to see if fiemap supports