diff --git a/scst/src/scst_copy_mgr.c b/scst/src/scst_copy_mgr.c index f4453ccb3..b87bc0035 100644 --- a/scst/src/scst_copy_mgr.c +++ b/scst/src/scst_copy_mgr.c @@ -2668,13 +2668,15 @@ out: void scst_cm_update_dev(struct scst_device *dev) { - int rc; + int rc, res; TRACE_ENTRY(); TRACE_MGMT_DBG("copy manager: updating device %s", dev->virt_name); - scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + res = scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + WARN_ON_ONCE(res); + mutex_lock(&scst_mutex); scst_cm_dev_unregister(dev, false); diff --git a/scst/src/scst_main.c b/scst/src/scst_main.c index f604aca6a..7e9af1c11 100644 --- a/scst/src/scst_main.c +++ b/scst/src/scst_main.c @@ -612,6 +612,7 @@ void scst_unregister_target(struct scst_tgt *tgt) #ifndef CONFIG_SCST_PROC struct scst_acg *acg, *acg_tmp; #endif + int res; TRACE_ENTRY(); @@ -668,7 +669,9 @@ again: wait_event(tgt->unreg_waitQ, list_empty(&tgt->sysfs_sess_list)); TRACE_DBG("%s", "wait_event() returned"); - scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + res = scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + WARN_ON_ONCE(res); + mutex_lock(&scst_mutex); mutex_lock(&scst_mutex2); @@ -1760,11 +1763,13 @@ void scst_unregister_dev_driver(struct scst_dev_type *dev_type) { struct scst_device *dev; struct scst_dev_type *dt; - int found = 0; + int res, found = 0; TRACE_ENTRY(); - scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + res = scst_suspend_activity(SCST_SUSPEND_TIMEOUT_UNLIMITED); + WARN_ON_ONCE(res); + mutex_lock(&scst_mutex); list_for_each_entry(dt, &scst_dev_type_list, dev_type_list_entry) {