Tests 091,240, and 268 are failing on my 4k sector hard disk. The dio writes
from fsx and aiodio_sparse2 are failing on xfs with EINVAL which is returned
from the check at the top of xfs_file_dio_aio_write().
The fix is to use blockdev -getpbsz to get the physical sector size instead
of the logical sector size. This makes 091 and 268 work. 240 will not run
on a 4k drive since fs block size == device block size. Tested against
xfs,ext4, and btrfs.
Signed-off-by: Dwight Engen <dwight.engen@xxxxxxxxxx>
---
tests/generic/091 | 2 +-
tests/generic/240 | 2 +-
tests/generic/263 | 2 +-
3 files changed, 3 insertions(+), 3 deletions(-)
diff --git a/tests/generic/091 b/tests/generic/091
index cee012d..8a11505 100755
--- a/tests/generic/091
+++ b/tests/generic/091
@@ -54,7 +54,7 @@ run_fsx()
}
psize=`$here/src/feature -s`
-bsize=`blockdev --getss $TEST_DEV`
+bsize=`blockdev --getpbsz $TEST_DEV`
kernel=`uname -r | sed -e 's/\(2\..\).*/\1/'`
# 2.4 Linux kernels support bsize aligned direct I/O only
diff --git a/tests/generic/240 b/tests/generic/240
index e692318..ac8560d 100755
--- a/tests/generic/240
+++ b/tests/generic/240
@@ -60,7 +60,7 @@ rm -f $seqres.full
rm -f $TEST_DIR/aiodio_sparse
-logical_block_size=`blockdev --getss $TEST_DEV`
+logical_block_size=`blockdev --getpbsz $TEST_DEV`
fs_block_size=`stat -f $TEST_DIR | grep "Block size:" | awk '{print $3}'`
if [ $fs_block_size -le $logical_block_size ]; then
diff --git a/tests/generic/263 b/tests/generic/263
index 377b199..9795bc2 100755
--- a/tests/generic/263
+++ b/tests/generic/263
@@ -54,7 +54,7 @@ run_fsx()
}
psize=`$here/src/feature -s`
-bsize=`blockdev --getss $TEST_DEV`
+bsize=`blockdev --getpbsz $TEST_DEV`
run_fsx -N 10000 -o 8192 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z
run_fsx -N 10000 -o 128000 -l 500000 -r PSIZE -t BSIZE -w BSIZE -Z
--
1.8.1.4
|