Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9af8785a authored by Keith Busch's avatar Keith Busch Committed by Jens Axboe
Browse files

NVMe: Fix command setup on IO retry



On retry, the req->special is pointing to an already setup IOD, but we
still need to setup the command context and callback, otherwise you'll
see false twice completed errors and leak requests.

Signed-off-by: default avatarKeith Busch <keith.busch@intel.com>
Signed-off-by: default avatarJens Axboe <axboe@fb.com>
parent 709c8667
Loading
Loading
Loading
Loading
+1 −2
Original line number Diff line number Diff line
@@ -640,8 +640,6 @@ static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx,
	iod->private = req;
	req->special = iod;

	nvme_set_info(cmd, iod, req_completion);

	if (req->cmd_flags & REQ_DISCARD) {
		void *range;
		/*
@@ -677,6 +675,7 @@ static int nvme_queue_rq(struct blk_mq_hw_ctx *hctx,
	blk_mq_start_request(req);

 submit_iod:
	nvme_set_info(cmd, iod, req_completion);
	spin_lock_irq(&nvmeq->q_lock);
	if (req->cmd_flags & REQ_DISCARD)
		nvme_submit_discard(nvmeq, ns, req, iod);