]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
NVMe: Use a retryable error code on reset
authorKeith Busch <keith.busch@intel.com>
Mon, 4 Jan 2016 16:10:56 +0000 (09:10 -0700)
committerChuck Anderson <chuck.anderson@oracle.com>
Thu, 1 Jun 2017 20:40:54 +0000 (13:40 -0700)
A negative status has the "do not retry" bit set, which makes it not
retryable.  Use a fake status that can potentially be retried on reset.

An aborted command's status is overridden by the timeout handler so
that it won't be retried, which is necessary to keep initialization from
getting into a reset loop.

Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
(cherry picked from commit 1d49c38c4865c596b01b31a52540275c1bb383e7)

Orabug: 25130845

Signed-off-by: Ashok Vairavan <ashok.vairavan@oracle.com>
Reviewed-by: Martin K. Petersen <martin.petersen@oracle.com>
drivers/nvme/host/pci.c

index 5777f2b9efa8342ec8dd81cba2a2067d7bb4731e..d1bbfc45cd18d978f986e446208849d63501fe41 100644 (file)
@@ -1078,7 +1078,7 @@ static void nvme_cancel_queue_ios(struct request *req, void *data, bool reserved
        dev_warn(nvmeq->q_dmadev,
                 "Cancelling I/O %d QID %d\n", req->tag, nvmeq->qid);
 
-       status = NVME_SC_CANCELLED;
+       status = NVME_SC_ABORT_REQ;
        if (blk_queue_dying(req->q))
                status |= NVME_SC_DNR;
        blk_mq_complete_request(req, status);