[PATCH v3 11/11] nvme: Fix a race condition
Christoph Hellwig
hch at lst.de
Wed Oct 19 06:41:31 PDT 2016
Hi Bart,
this looks great!
Reviewed-by: Christoph Hellwig <hch at lst.de>
Some minor nitpicks below:
> void nvme_requeue_req(struct request *req)
> {
> + blk_mq_requeue_request(req, true);
> }
> EXPORT_SYMBOL_GPL(nvme_requeue_req);
Please just remove the nvme_requeue_req wrapper.
>
> @@ -2074,11 +2068,14 @@ EXPORT_SYMBOL_GPL(nvme_kill_queues);
> void nvme_stop_queues(struct nvme_ctrl *ctrl)
> {
> struct nvme_ns *ns;
> + struct request_queue *q;
>
> mutex_lock(&ctrl->namespaces_mutex);
> list_for_each_entry(ns, &ctrl->namespaces, list) {
> + q = ns->queue;
> + blk_mq_cancel_requeue_work(q);
> + blk_mq_stop_hw_queues(q);
> + blk_mq_quiesce_queue(q);
> }
I'd keep the q declaration in the minimal scope, e.g.
list_for_each_entry(ns, &ctrl->namespaces, list) {
struct request_queue *q = ns->queue;
blk_mq_cancel_requeue_work(q);
blk_mq_stop_hw_queues(q);
blk_mq_quiesce_queue(q);
}
More information about the Linux-nvme
mailing list