diff options
author | Keith Busch <keith.busch@intel.com> | 2015-06-08 12:08:14 -0400 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-06-27 13:42:50 -0400 |
commit | 17188bb403e9098a815dd850aedb6c150d2a3a6b (patch) | |
tree | 7cd0d4ce979c852a94b7b0fa982308e8cf85b262 | |
parent | 4af0e21caf8e676e57ea27d7cce3426e473e498c (diff) |
NVMe: Don't use fake status on cancelled command
Synchronized commands do different things for timed out commands
vs. controller returned errors.
Signed-off-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/block/nvme-core.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/drivers/block/nvme-core.c b/drivers/block/nvme-core.c index a45700312caf..2cbe1b4daef2 100644 --- a/drivers/block/nvme-core.c +++ b/drivers/block/nvme-core.c | |||
@@ -613,7 +613,10 @@ static void req_completion(struct nvme_queue *nvmeq, void *ctx, | |||
613 | return; | 613 | return; |
614 | } | 614 | } |
615 | if (req->cmd_type == REQ_TYPE_DRV_PRIV) { | 615 | if (req->cmd_type == REQ_TYPE_DRV_PRIV) { |
616 | req->errors = status; | 616 | if (cmd_rq->ctx == CMD_CTX_CANCELLED) |
617 | req->errors = -EINTR; | ||
618 | else | ||
619 | req->errors = status; | ||
617 | } else { | 620 | } else { |
618 | req->errors = nvme_error_status(status); | 621 | req->errors = nvme_error_status(status); |
619 | } | 622 | } |