Once the driver decides to cancel requests, the concept of those requests timing out ceases to exist. Use __blk_mq_complete_request() to bypass fake timeout error injection so that request reclaim may proceed. Reviewed-by: Johannes Thumshirn <johannes.thumshirn@xxxxxxx> Signed-off-by: Keith Busch <kbusch@xxxxxxxxxx> --- drivers/nvme/host/core.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c index ba860efd250d..f65a0b6cd988 100644 --- a/drivers/nvme/host/core.c +++ b/drivers/nvme/host/core.c @@ -310,7 +310,7 @@ bool nvme_cancel_request(struct request *req, void *data, bool reserved) return true; nvme_req(req)->status = NVME_SC_HOST_ABORTED_CMD; - blk_mq_complete_request(req); + __blk_mq_complete_request(req); return true; } EXPORT_SYMBOL_GPL(nvme_cancel_request); -- 2.24.1