|
@@ -2437,7 +2437,13 @@ void nvme_kill_queues(struct nvme_ctrl *ctrl)
|
|
revalidate_disk(ns->disk);
|
|
revalidate_disk(ns->disk);
|
|
blk_set_queue_dying(ns->queue);
|
|
blk_set_queue_dying(ns->queue);
|
|
blk_mq_abort_requeue_list(ns->queue);
|
|
blk_mq_abort_requeue_list(ns->queue);
|
|
- blk_mq_start_stopped_hw_queues(ns->queue, true);
|
|
|
|
|
|
+
|
|
|
|
+ /*
|
|
|
|
+ * Forcibly start all queues to avoid having stuck requests.
|
|
|
|
+ * Note that we must ensure the queues are not stopped
|
|
|
|
+ * when the final removal happens.
|
|
|
|
+ */
|
|
|
|
+ blk_mq_start_hw_queues(ns->queue);
|
|
}
|
|
}
|
|
mutex_unlock(&ctrl->namespaces_mutex);
|
|
mutex_unlock(&ctrl->namespaces_mutex);
|
|
}
|
|
}
|