test: check for /dev/loop-control when checking lodev availability

losetup in util-linux 2.40 started reporting lost loop devices [0] and
it has an unfortunate side-effect where it reports lost devices even in
containers, which then makes the loop device check "falsely" pass [1].

Let's just check for /dev/loop-control explicitly to "work around" this.

[0] a6ca0456cc
[1] https://github.com/util-linux/util-linux/issues/2824
This commit is contained in:
Frantisek Sumsal
2024-03-27 19:35:30 +01:00
parent 3a51e31be9
commit 0348b500ef

View File

@@ -22,7 +22,7 @@ fi
# change the sector size of a file, and we want to test both 512 and 4096 byte
# sectors. If loopback devices are not supported, we can only test one sector
# size, and the underlying device is likely to have a sector size of 512 bytes.
if ! losetup --find >/dev/null 2>&1; then
if [[ ! -e /dev/loop-control ]]; then
echo "No loopback device support"
SECTOR_SIZES="512"
fi
@@ -108,7 +108,7 @@ for sector_size in $SECTOR_SIZES ; do
rm -f "$BACKING_FILE"
truncate -s "$disk_size" "$BACKING_FILE"
if losetup --find >/dev/null 2>&1; then
if [[ -e /dev/loop-control ]]; then
# shellcheck disable=SC2086
blockdev="$(losetup --find --show --sector-size $sector_size $BACKING_FILE)"
else