[PATCH 2/4] common/scsi_debug: use udevadm settle instead of sleeping

From: Luis Chamberlain
Date: Tue Jul 27 2021 - 16:10:59 EST


The variable UDEV_SETTLE_PROG is already defined and used for
lvm to either use `udevadm settle` in case it is available, and
if not, use 'sleep 1' otherwise (ancient distros or CONFIG_NET
is missing).

Use it on scsi_debug to replace the sleep calls sprinkled in
place after module removal. The correct thing to do is to
just use udevadm settle when available, and only fall back to
calling sleep when udevadm is not available or CONFIG_NET
is disabled.

Signed-off-by: Luis Chamberlain <mcgrof@xxxxxxxxxx>
---
common/scsi_debug | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/common/scsi_debug b/common/scsi_debug
index d9aa0bd2..e7988469 100644
--- a/common/scsi_debug
+++ b/common/scsi_debug
@@ -36,7 +36,7 @@ _get_scsi_debug_dev()
echo "scsi_debug options $opts" >> $seqres.full
modprobe scsi_debug $opts
[ $? -eq 0 ] || _fail "scsi_debug modprobe failed"
- sleep 1
+ $UDEV_SETTLE_PROG
device=`grep -wl scsi_debug /sys/block/sd*/device/model | awk -F / '{print $4}'`
echo "/dev/$device"
}
@@ -50,7 +50,7 @@ _put_scsi_debug_dev()
# modprobe is only quiet when the module is not found, not when the
# module is in use.
while [ $n -ge 0 ] && ! modprobe -nr scsi_debug >/dev/null 2>&1; do
- sleep 1
+ $UDEV_SETTLE_PROG
n=$((n-1))
done
rmmod scsi_debug || _fail "Could not remove scsi_debug module"
--
2.29.2