diff options
author | Keith Busch <keith.busch@intel.com> | 2016-01-04 09:10:56 -0700 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2016-01-12 13:33:35 -0700 |
commit | 1d49c38c4865c596b01b31a52540275c1bb383e7 (patch) | |
tree | ac596052b7b657d24fa9bb4a6c412423a8bec80f /drivers/nvme | |
parent | e3e9d50cd6ed392bb716e35c134d1e82707c51b4 (diff) | |
download | lwn-1d49c38c4865c596b01b31a52540275c1bb383e7.tar.gz lwn-1d49c38c4865c596b01b31a52540275c1bb383e7.zip |
NVMe: Use a retryable error code on reset
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>
Diffstat (limited to 'drivers/nvme')
-rw-r--r-- | drivers/nvme/host/pci.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 30ed2ab2cadb..ac6c7afb2a6e 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -1017,7 +1017,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); |