From d49fd5b9fadd8d160949afbf34bb7bbe3128fa32 Mon Sep 17 00:00:00 2001 From: John Johansen Date: Fri, 10 May 2019 17:13:48 -0700 Subject: [PATCH] tests/regression: fix mount test to use next available loop device looping through the first 16 loop devices to find a free device will fail if those mount devices are taken, and unfortunately there are now services that use an excessive amount of loop devices causing the regression test to fail. PR: https://gitlab.com/apparmor/apparmor/merge_requests/379 Signed-off-by: John Johansen Acked-by: Steve Beattie (cherry picked from commit ab0f2af1da2bcab0d4898e2140c736121c528737) --- tests/regression/apparmor/mount.sh | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/tests/regression/apparmor/mount.sh b/tests/regression/apparmor/mount.sh index 8dc1a88ed..bfd2905b5 100755 --- a/tests/regression/apparmor/mount.sh +++ b/tests/regression/apparmor/mount.sh @@ -67,21 +67,9 @@ if [ ! -b /dev/loop0 ] ; then modprobe loop fi -# kinda ugly way of atomically finding a free loop device -for i in $(seq 0 15) -do - if [ "$loop_device" = "unset" ] - then - if /sbin/losetup /dev/loop$i ${mount_file} > /dev/null 2> /dev/null - then - loop_device=/dev/loop$i; - fi - fi -done -if [ "$loop_device" = "unset" ] -then - fatalerror 'Unable to find a free loop device' -fi +# find the next free loop device and mount it +loop_device=$(losetup -f) || fatalerror 'Unable to find a free loop device' +/sbin/losetup "$loop_device" ${mount_file} > /dev/null 2> /dev/null # TEST 1. Make sure can mount and umount unconfined