diff options
author | Keith Busch <keith.busch@intel.com> | 2015-06-08 10:08:14 -0600 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-06-27 11:42:50 -0600 |
commit | 17188bb403e9098a815dd850aedb6c150d2a3a6b (patch) | |
tree | 7cd0d4ce979c852a94b7b0fa982308e8cf85b262 | |
parent | 4af0e21caf8e676e57ea27d7cce3426e473e498c (diff) | |
download | linux-17188bb403e9098a815dd850aedb6c150d2a3a6b.tar.bz2 |
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, return; } if (req->cmd_type == REQ_TYPE_DRV_PRIV) { - req->errors = status; + if (cmd_rq->ctx == CMD_CTX_CANCELLED) + req->errors = -EINTR; + else + req->errors = status; } else { req->errors = nvme_error_status(status); } |