Skip to contentSkip to conversation

move nvme_cancel_io() to common code

PATCH Superseded Ming Lin 4 participants 8 messages May 18, 2016 – May 26, 2016 NVMe

lore
Share & tools
lore

Ming Lin

author
#0 lore raw

v2 cover move nvme_cancel_io() to common code

From: Ming Lin <[email protected]>

So it can be used by fabrics driver also.

v2:
- not declare "ctrl"
- rename nvme_cancel_io to nvme_cancel_request

Ming Lin (2):
nvme: update and rename nvme_cancel_io to nvme_cancel_request
nvme: move nvme_cancel_request() to common code

 drivers/nvme/host/core.c | 17 +++++++++++++++++
 drivers/nvme/host/nvme.h |  1 +
 drivers/nvme/host/pci.c  | 20 ++------------------
 3 files changed, 20 insertions(+), 18 deletions(-)
Signature · 1 line
1.9.1
author
#1 lore raw

PATCH v2 1/2 nvme: update and rename nvme_cancel_io to nvme_cancel_request

From: Ming Lin <[email protected]>

nvme_cancel_io is a bit confusing (given the distinction of io/admin), so rename it to nvme_cancel_request.

And update it a bit to pass in struct nvme_ctrl, so it can be used by Fabrics driver also.

Signed-off-by Ming Lin <ming.l at samsung.com>
Reviewed-by Christoph Hellwig <hch at lst.de>
Suggested-by Sagi Grimberg <sagi at grimberg.me>
---
 drivers/nvme/host/pci.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)
drivers/nvme/host/pci.c +4 -4
index a62c9c5..16da89d 100644
@@ -925,14 +925,14 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
 	return BLK_EH_RESET_TIMER;
 }
 
-static void nvme_cancel_io(struct request *req, void *data, bool reserved)
+static void nvme_cancel_request(struct request *req, void *data, bool reserved)
 {
 	int status;
 
 	if (!blk_mq_request_started(req))
 		return;
 
-	dev_dbg_ratelimited(((struct nvme_dev *) data)->ctrl.device,
+	dev_dbg_ratelimited(((struct nvme_ctrl *) data)->device,
 				"Cancelling I/O %d", req->tag);
 
 	status = NVME_SC_ABORT_REQ;
@@ -1720,8 +1720,8 @@ static void nvme_dev_disable(struct nvme_dev *dev, bool shutdown)
 	}
 	nvme_pci_disable(dev);
 
-	blk_mq_tagset_busy_iter(&dev->tagset, nvme_cancel_io, dev);
-	blk_mq_tagset_busy_iter(&dev->admin_tagset, nvme_cancel_io, dev);
+	blk_mq_tagset_busy_iter(&dev->tagset, nvme_cancel_request, &dev->ctrl);
+	blk_mq_tagset_busy_iter(&dev->admin_tagset, nvme_cancel_request, &dev->ctrl);
 	mutex_unlock(&dev->shutdown_lock);
 }
 
Signature · 1 line
1.9.1
#2 lore raw

PATCH v2 1/2 nvme: update and rename nvme_cancel_io to nvme_cancel_request

Quoted 9 lines · Ming Lin

From: Ming Lin <ming.l at samsung.com>

nvme_cancel_io is a bit confusing (given the distinction of io/admin), so rename it to nvme_cancel_request.

And update it a bit to pass in struct nvme_ctrl, so it can be used by Fabrics driver also.

Signed-off-by Ming Lin <ming.l at samsung.com>
Reviewed-by Johannes Thumshirn <jthumshirn at suse.de>
Signature · 6 lines
Johannes Thumshirn                                          Storage
jthumshirn at suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg
GF: Felix Imend?rffer, Jane Smithard, Graham Norton
HRB 21284 (AG N?rnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
author
#3 lore raw

PATCH v2 2/2 nvme: move nvme_cancel_request() to common code

In reply to Ming Lin

From: Ming Lin <[email protected]>

So it can be used by fabrics driver also.

Signed-off-by Ming Lin <ming.l at samsung.com>
Reviewed-by Christoph Hellwig <hch at lst.de>
---
 drivers/nvme/host/core.c | 17 +++++++++++++++++
 drivers/nvme/host/nvme.h |  1 +
 drivers/nvme/host/pci.c  | 16 ----------------
 3 files changed, 18 insertions(+), 16 deletions(-)
drivers/nvme/host/core.c +17 -0
index ac950d1..12835b3 100644
@@ -59,6 +59,23 @@ static DEFINE_SPINLOCK(dev_list_lock);
 
 static struct class *nvme_class;
 
+void nvme_cancel_request(struct request *req, void *data, bool reserved)
+{
+	int status;
+
+	if (!blk_mq_request_started(req))
+		return;
+
+	dev_dbg_ratelimited(((struct nvme_ctrl *) data)->device,
+				"Cancelling I/O %d", req->tag);
+
+	status = NVME_SC_ABORT_REQ;
+	if (blk_queue_dying(req->q))
+		status |= NVME_SC_DNR;
+	blk_mq_complete_request(req, status);
+}
+EXPORT_SYMBOL_GPL(nvme_cancel_request);
+
 bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
 		enum nvme_ctrl_state new_state)
 {
drivers/nvme/host/nvme.h +1 -0
index fab6507..3f3945a 100644
@@ -229,6 +229,7 @@ static inline bool nvme_req_needs_retry(struct request *req, u16 status)
 		(jiffies - req->start_time) < req->timeout;
 }
 
+void nvme_cancel_request(struct request *req, void *data, bool reserved);
 bool nvme_change_ctrl_state(struct nvme_ctrl *ctrl,
 		enum nvme_ctrl_state new_state);
 int nvme_disable_ctrl(struct nvme_ctrl *ctrl, u64 cap);
drivers/nvme/host/pci.c +0 -16
index 16da89d..02105da 100644
@@ -925,22 +925,6 @@ static enum blk_eh_timer_return nvme_timeout(struct request *req, bool reserved)
 	return BLK_EH_RESET_TIMER;
 }
 
-static void nvme_cancel_request(struct request *req, void *data, bool reserved)
-{
-	int status;
-
-	if (!blk_mq_request_started(req))
-		return;
-
-	dev_dbg_ratelimited(((struct nvme_ctrl *) data)->device,
-				"Cancelling I/O %d", req->tag);
-
-	status = NVME_SC_ABORT_REQ;
-	if (blk_queue_dying(req->q))
-		status |= NVME_SC_DNR;
-	blk_mq_complete_request(req, status);
-}
-
 static void nvme_free_queue(struct nvme_queue *nvmeq)
 {
 	dma_free_coherent(nvmeq->q_dmadev, CQ_SIZE(nvmeq->q_depth),
Signature · 1 line
1.9.1
#4 lore raw

PATCH v2 2/2 nvme: move nvme_cancel_request() to common code

Quoted 5 lines · Ming Lin

From: Ming Lin <ming.l at samsung.com>

So it can be used by fabrics driver also.

Signed-off-by Ming Lin <ming.l at samsung.com>
Reviewed-by Johannes Thumshirn <jthumshirn at suse.de>
Signature · 6 lines
Johannes Thumshirn                                          Storage
jthumshirn at suse.de                                +49 911 74053 689
SUSE LINUX GmbH, Maxfeldstr. 5, 90409 N?rnberg
GF: Felix Imend?rffer, Jane Smithard, Graham Norton
HRB 21284 (AG N?rnberg)
Key fingerprint = EC38 9CAB C2C4 F25D 8600 D0D0 0393 969D 2D76 0850
author
#5 lore raw

v2 cover move nvme_cancel_io() to common code

In reply to Ming Lin
Quoted 11 lines · Ming Lin

From: Ming Lin <ming.l at samsung.com>

So it can be used by fabrics driver also.

v2:
- not declare "ctrl"
- rename nvme_cancel_io to nvme_cancel_request

Ming Lin (2):
nvme: update and rename nvme_cancel_io to nvme_cancel_request
nvme: move nvme_cancel_request() to common code

Hi Keith,

Are you OK with these 2 patches?

Thanks,
Ming

Quoted 14 lines
 drivers/nvme/host/core.c | 17 +++++++++++++++++
 drivers/nvme/host/nvme.h |  1 +
 drivers/nvme/host/pci.c  | 20 ++------------------
 3 files changed, 20 insertions(+), 18 deletions(-)

--
1.9.1

_______________________________________________
Linux-nvme mailing list
Linux-nvme at lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-nvme

#6 lore raw

v2 cover move nvme_cancel_io() to common code

Quoted 13 lines · Ming Lin
Quoted 11 lines · Ming Lin

From: Ming Lin <ming.l at samsung.com>

So it can be used by fabrics driver also.

v2:
- not declare "ctrl"
- rename nvme_cancel_io to nvme_cancel_request

Ming Lin (2):
nvme: update and rename nvme_cancel_io to nvme_cancel_request
nvme: move nvme_cancel_request() to common code

Quoted 6 lines

Hi Keith,

Are you OK with these 2 patches?

Thanks,
Ming

Looks fine to me.

Reviewed-by Keith Busch <keith.bsuch at intel.com>
#7 lore raw

v2 cover move nvme_cancel_io() to common code

In reply to Ming Lin
Quoted 11 lines · Ming Lin

From: Ming Lin <ming.l at samsung.com>

So it can be used by fabrics driver also.

v2:
- not declare "ctrl"
- rename nvme_cancel_io to nvme_cancel_request

Ming Lin (2):
nvme: update and rename nvme_cancel_io to nvme_cancel_request
nvme: move nvme_cancel_request() to common code

Added for 4.8, thanks.

Signature · 1 line
Jens Axboe