diff options
author | Christoph Hellwig <hch@lst.de> | 2015-11-26 12:58:11 +0100 |
---|---|---|
committer | Jens Axboe <axboe@fb.com> | 2015-12-22 09:38:33 -0700 |
commit | 297465c873ae8c99180617ca904dc1a4a738f25d (patch) | |
tree | 34fa65548693e0637d746a0c21c5e313df56b980 | |
parent | 31c7c7d2c9f17dc98a98c59c17e184bf164ee760 (diff) | |
download | lwn-297465c873ae8c99180617ca904dc1a4a738f25d.tar.gz lwn-297465c873ae8c99180617ca904dc1a4a738f25d.zip |
nvme: add NVME_SC_CANCELLED
To properly document how we are using a negative Linux error value to
communicate request cancellations inside the driver.
Signed-off-by: Christoph Hellwig <hch@lst.de>
Acked-by: Keith Busch <keith.busch@intel.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
-rw-r--r-- | drivers/nvme/host/nvme.h | 10 | ||||
-rw-r--r-- | drivers/nvme/host/pci.c | 2 |
2 files changed, 11 insertions, 1 deletions
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h index b75d41e5c378..88950f362d97 100644 --- a/drivers/nvme/host/nvme.h +++ b/drivers/nvme/host/nvme.h @@ -19,6 +19,16 @@ #include <linux/kref.h> #include <linux/blk-mq.h> +enum { + /* + * Driver internal status code for commands that were cancelled due + * to timeouts or controller shutdown. The value is negative so + * that it a) doesn't overlap with the unsigned hardware error codes, + * and b) can easily be tested for. + */ + NVME_SC_CANCELLED = -EINTR, +}; + extern unsigned char nvme_io_timeout; #define NVME_IO_TIMEOUT (nvme_io_timeout * HZ) diff --git a/drivers/nvme/host/pci.c b/drivers/nvme/host/pci.c index 99c5b6319d8d..e683bd1a05e6 100644 --- a/drivers/nvme/host/pci.c +++ b/drivers/nvme/host/pci.c @@ -621,7 +621,7 @@ static void req_completion(struct nvme_queue *nvmeq, void *ctx, if (req->cmd_type == REQ_TYPE_DRV_PRIV) { if (cmd_rq->ctx == CMD_CTX_CANCELLED) - error = -EINTR; + error = NVME_SC_CANCELLED; else error = status; } else { |