]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
grub-fs-tester: Fix losetup race
authorWill Thompson <wjt@endlessm.com>
Fri, 15 Jun 2018 17:34:04 +0000 (18:34 +0100)
committerDaniel Kiper <daniel.kiper@oracle.com>
Sat, 23 Jun 2018 19:39:09 +0000 (21:39 +0200)
If something else on the system is using loopback devices, then the
device that's free at the call to `losetup -f` may not be free in the
following call to try to use it. Instead, find and use the first free
loopback device in a single call to losetup.

Signed-off-by: Will Thompson <wjt@endlessm.com>
Reviewed-by: Daniel Kiper <daniel.kiper@oracle.com>
tests/util/grub-fs-tester.in

index 26bd57a802702f47a1fcc3f589b568e806dc339b..ef65fbc93414daf310b842f0d9a360ca10a0e5a3 100644 (file)
@@ -616,9 +616,8 @@ for LOGSECSIZE in $(range "$MINLOGSECSIZE" "$MAXLOGSECSIZE" 1); do
                    mkdir -p "$MNTPOINTRO"
                    for i in $(range 0 $((NDEVICES-1)) 1); do
                        dd if=/dev/zero of="$FSIMAGEP${i}.img" count=1 bs=1 seek=$((DISKSIZE-1)) &> /dev/null
-                       LODEVICE="$(losetup -f)"
+                       LODEVICE=$(losetup --find --show "$FSIMAGEP${i}.img")
                        LODEVICES="$LODEVICES $LODEVICE"
-                       losetup "$LODEVICE" "$FSIMAGEP${i}.img"
                        if test "$i" = 0; then
                            MOUNTDEVICE="$LODEVICE"
                        fi