diff --git a/scst/src/scst_copy_mgr.c b/scst/src/scst_copy_mgr.c index b991f74a5..cba7f11ce 100644 --- a/scst/src/scst_copy_mgr.c +++ b/scst/src/scst_copy_mgr.c @@ -2676,13 +2676,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 6f2f2173b..3154c9c75 100644 --- a/scst/src/scst_main.c +++ b/scst/src/scst_main.c @@ -560,6 +560,7 @@ void scst_unregister_target(struct scst_tgt *tgt) { struct scst_tgt_template *vtt = tgt->tgtt; struct scst_acg *acg, *acg_tmp; + int res; TRACE_ENTRY(); @@ -612,7 +613,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); @@ -1584,11 +1587,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) {