[PATCH] Fix fcollapse require code to work with 64k block size

[Date Prev] [Date Next] [Thread Prev] [Thread Next] [Date Index] [Thread Index]



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@xxxxxxxxxxxxxxxxxx>
---
 common/rc | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/common/rc b/common/rc
index a6caca9..04a2187 100644
--- a/common/rc
+++ b/common/rc
@@ -2106,8 +2106,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`
+		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
-- 
2.9.5

--
To unsubscribe from this list: send the line "unsubscribe fstests" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[Index of Archives]     [Linux Filesystems Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux