RDMA: Update workqueue usage
* ib_wq is added, which is used as the common workqueue for infiniband instead of the system workqueue. All system workqueue usages including flush_scheduled_work() callers are converted to use and flush ib_wq. * cancel_delayed_work() + flush_scheduled_work() converted to cancel_delayed_work_sync(). * qib_wq is removed and ib_wq is used instead. This is to prepare for deprecation of flush_scheduled_work(). Signed-off-by: Tejun Heo <tj@kernel.org> Signed-off-by: Roland Dreier <rolandd@cisco.com>
Cette révision appartient à :
@@ -638,7 +638,7 @@ err:
|
||||
if (target->state == SRP_TARGET_CONNECTING) {
|
||||
target->state = SRP_TARGET_DEAD;
|
||||
INIT_WORK(&target->work, srp_remove_work);
|
||||
schedule_work(&target->work);
|
||||
queue_work(ib_wq, &target->work);
|
||||
}
|
||||
spin_unlock_irq(&target->lock);
|
||||
|
||||
@@ -2199,7 +2199,7 @@ static void srp_remove_one(struct ib_device *device)
|
||||
* started before we marked our target ports as
|
||||
* removed, and any target port removal tasks.
|
||||
*/
|
||||
flush_scheduled_work();
|
||||
flush_workqueue(ib_wq);
|
||||
|
||||
list_for_each_entry_safe(target, tmp_target,
|
||||
&host->target_list, list) {
|
||||
|
Référencer dans un nouveau ticket
Bloquer un utilisateur