common/module: use patient module removal
authorLuis Chamberlain <mcgrof@kernel.org>
Tue, 21 Sep 2021 17:49:52 +0000 (10:49 -0700)
committerEryu Guan <guaneryu@gmail.com>
Sun, 26 Sep 2021 12:48:16 +0000 (20:48 +0800)
Now that scsi_debug has been using the patient module removal
for a while, let's generalize its use for the other use cases.
This likey will fix some odd false positives due to races.

Suggested-by: Eryu Guan <guan@eryu.me>
Signed-off-by: Luis Chamberlain <mcgrof@kernel.org>
Reviewed-by: Eryu Guan <guaneryu@gmail.com>
Signed-off-by: Eryu Guan <guaneryu@gmail.com>
common/module

index 0392f20cbca6bd0c6d168e0d0f2b4e595c1db90c..ead0f881acae8ee0a55f07f8b3d90e107abe8c9e 100644 (file)
@@ -16,7 +16,7 @@ _reload_module()
 {
        local module="$1"
 
-       modprobe -r "${module}" || _fail "${module} unload failed"
+       _patient_rmmod "${module}" || _fail "${module} unload failed"
        modprobe "${module}" || _fail "${module} load failed"
 }
 
@@ -44,7 +44,7 @@ _require_loadable_module()
        local module="$1"
 
        modinfo "${module}" > /dev/null 2>&1 || _notrun "${module}: must be a module."
-       modprobe -r "${module}" || _notrun "Require ${module} to be unloadable"
+       _patient_rmmod "${module}" || _notrun "Require ${module} to be unloadable"
        modprobe "${module}" || _notrun "${module} load failed"
 }
 
@@ -64,7 +64,7 @@ _require_loadable_fs_module()
        test -n "${had_scratchfs}" && _scratch_unmount
        local unload_ok=""
        local load_ok=""
-       modprobe -r "${module}" || unload_ok=0
+       _patient_rmmod "${module}" || unload_ok=0
        modprobe "${module}" || load_ok=0
        test -n "${had_scratchfs}" && _scratch_mount 2> /dev/null
        test -n "${had_testfs}" && _test_mount 2> /dev/null