#
# Tests the LO_FLAGS_BLOCKSIZE flag for LOOP_{GET,SET}_STATUS, introduced in
# commit f2c6df7dbf9a ("loop: support 4k physical blocksize"). Also a
-# regression test for patches "loop: always return block size in
-# LOOP_GET_STATUS" and "loop: fix hang if LOOP_SET_STATUS gets invalid
-# blocksize or encrypt type".
+# regression test for patches "loop: fix hang if LOOP_SET_STATUS gets invalid
+# blocksize or encrypt type", "loop: use queue limit instead of private
+# lo_logical_blocksize", and "loop: always return block size in
+# LOOP_GET_STATUS".
#
# Copyright (C) 2017 Omar Sandoval
#
return 1
fi
+ local sysfs="/sys/block/${loop_dev#/dev/}"
for blksize in "" 4096 2048 1234 1024 512; do
if [[ -z $blksize ]]; then
echo "Checking default block size"
dd if=/dev/zero of="$loop_dev" oflag=direct bs="$blksize" count=1 status=none
fi
fi
- echo "LOOP_GET_STATUS says" "$(src/loblksize "$loop_dev")"
- echo "sysfs says" "$(cat "/sys/block/${loop_dev#/dev/}/queue/logical_block_size")"
+ local loop_get_status="$(src/loblksize "$loop_dev")"
+ local logical_block_size="$(cat "$sysfs/queue/logical_block_size")"
+ local physical_block_size="$(cat "$sysfs/queue/physical_block_size")"
+ local minimum_io_size="$(cat "$sysfs/queue/minimum_io_size")"
+ echo "LOOP_GET_STATUS=$loop_get_status queue/logical_block_size=$logical_block_size queue/physical_block_size=$physical_block_size queue/minimum_io_size=$minimum_io_size"
done
losetup -d "$loop_dev"
Running loop/002
Checking default block size
-LOOP_GET_STATUS says 512
-sysfs says 512
+LOOP_GET_STATUS=512 queue/logical_block_size=512 queue/physical_block_size=512 queue/minimum_io_size=512
Setting block size to 4096
-LOOP_GET_STATUS says 4096
-sysfs says 4096
+LOOP_GET_STATUS=4096 queue/logical_block_size=4096 queue/physical_block_size=4096 queue/minimum_io_size=4096
Setting block size to 2048
-LOOP_GET_STATUS says 2048
-sysfs says 2048
+LOOP_GET_STATUS=2048 queue/logical_block_size=2048 queue/physical_block_size=2048 queue/minimum_io_size=2048
Setting block size to 1234
LOOP_SET_STATUS64: Invalid argument
-LOOP_GET_STATUS says 2048
-sysfs says 2048
+LOOP_GET_STATUS=2048 queue/logical_block_size=2048 queue/physical_block_size=2048 queue/minimum_io_size=2048
Setting block size to 1024
-LOOP_GET_STATUS says 1024
-sysfs says 1024
+LOOP_GET_STATUS=1024 queue/logical_block_size=1024 queue/physical_block_size=1024 queue/minimum_io_size=1024
Setting block size to 512
-LOOP_GET_STATUS says 512
-sysfs says 512
+LOOP_GET_STATUS=512 queue/logical_block_size=512 queue/physical_block_size=512 queue/minimum_io_size=512
Test complete