|
@@ -1205,7 +1205,7 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
|
|
|
nvme_warn_reset(dev, csts);
|
|
|
nvme_dev_disable(dev, false);
|
|
|
nvme_reset_ctrl(&dev->ctrl);
|
|
|
- return BLK_EH_HANDLED;
|
|
|
+ return BLK_EH_DONE;
|
|
|
}
|
|
|
|
|
|
/*
|
|
@@ -1215,14 +1215,14 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
|
|
|
dev_warn(dev->ctrl.device,
|
|
|
"I/O %d QID %d timeout, completion polled\n",
|
|
|
req->tag, nvmeq->qid);
|
|
|
- return BLK_EH_HANDLED;
|
|
|
+ return BLK_EH_DONE;
|
|
|
}
|
|
|
|
|
|
/*
|
|
|
* Shutdown immediately if controller times out while starting. The
|
|
|
* reset work will see the pci device disabled when it gets the forced
|
|
|
* cancellation error. All outstanding requests are completed on
|
|
|
- * shutdown, so we return BLK_EH_HANDLED.
|
|
|
+ * shutdown, so we return BLK_EH_DONE.
|
|
|
*/
|
|
|
switch (dev->ctrl.state) {
|
|
|
case NVME_CTRL_CONNECTING:
|
|
@@ -1232,7 +1232,7 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
|
|
|
req->tag, nvmeq->qid);
|
|
|
nvme_dev_disable(dev, false);
|
|
|
nvme_req(req)->flags |= NVME_REQ_CANCELLED;
|
|
|
- return BLK_EH_HANDLED;
|
|
|
+ return BLK_EH_DONE;
|
|
|
default:
|
|
|
break;
|
|
|
}
|
|
@@ -1249,12 +1249,8 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
|
|
|
nvme_dev_disable(dev, false);
|
|
|
nvme_reset_ctrl(&dev->ctrl);
|
|
|
|
|
|
- /*
|
|
|
- * Mark the request as handled, since the inline shutdown
|
|
|
- * forces all outstanding requests to complete.
|
|
|
- */
|
|
|
nvme_req(req)->flags |= NVME_REQ_CANCELLED;
|
|
|
- return BLK_EH_HANDLED;
|
|
|
+ return BLK_EH_DONE;
|
|
|
}
|
|
|
|
|
|
if (atomic_dec_return(&dev->ctrl.abort_limit) < 0) {
|