common/scsi_debug: fix removal of scsi_debug module

Occasionally scsi_debug cannot be removed because it's still in use and
causes xfs/279 to fail.

Now dryrun the removal by modprobe firstly then do the real rmmod.

Signed-off-by: Eryu Guan <eguan@redhat.com>
Reviewed-by: Dave Chinner <dchinner@redhat.com>
Signed-off-by: Dave Chinner <david@fromorbit.com>
This commit is contained in:
Eryu Guan
2016-01-11 15:08:20 +11:00
committed by Dave Chinner
parent cc2dce716f
commit ef1932867e
+9 -1
View File
@@ -57,7 +57,15 @@ _get_scsi_debug_dev()
_put_scsi_debug_dev()
{
sleep 1
lsmod | grep -wq scsi_debug || return
n=2
# use redirection not -q option of modprobe here, because -q of old
# 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
n=$((n-1))
done
rmmod scsi_debug || _fail "Could not remove scsi_debug module"
}