linux-block.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCHv2 0/5] nvme/dm failover unification
@ 2018-01-09 19:04 Keith Busch
  2018-01-09 19:04 ` [PATCHv2 1/5] nvme: Add more command status translation Keith Busch
                   ` (5 more replies)
  0 siblings, 6 replies; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

Native nvme multipath provided a separate NVMe status decoder,
complicating maintenance as new statuses need to be accounted for. This
was already diverging from the generic nvme status decoder, which has
implications for other components that rely on accurate generic block
errors.

This series unifies common code among nvme and device-mapper multipath
so user experience regarding the failover fate of a command is the same.

v1 -> v2:

  Fixed blk_status_t used for NVME_SC_LBA_RANGE.

  Fixed line break formatting.

  Changed name of new block API for path related errors and added kernel
  doc for it. 

  Added reviews and acks.

Keith Busch (5):
  nvme: Add more command status translation
  nvme/multipath: Consult blk_status_t for failover
  block: Provide blk_status_t decoding for path errors
  nvme/multipath: Use blk_path_error
  dm mpath: Use blk_path_error

 drivers/md/dm-mpath.c         | 19 ++-----------------
 drivers/nvme/host/core.c      | 16 ++++++++++++----
 drivers/nvme/host/multipath.c | 44 ++-----------------------------------------
 drivers/nvme/host/nvme.h      |  5 +++--
 include/linux/blk_types.h     | 28 +++++++++++++++++++++++++++
 5 files changed, 47 insertions(+), 65 deletions(-)

-- 
2.13.6

^ permalink raw reply	[flat|nested] 13+ messages in thread

* [PATCHv2 1/5] nvme: Add more command status translation
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
@ 2018-01-09 19:04 ` Keith Busch
  2018-01-10  7:58   ` [dm-devel] " Johannes Thumshirn
  2018-01-09 19:04 ` [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover Keith Busch
                   ` (4 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

This adds more NVMe status code translations to blk_status_t values,
and captures all the current status codes NVMe multipath uses.

Acked-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 drivers/nvme/host/core.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 2a69d735efbc..499f3141e365 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -157,13 +157,20 @@ static blk_status_t nvme_error_status(struct request *req)
 		return BLK_STS_OK;
 	case NVME_SC_CAP_EXCEEDED:
 		return BLK_STS_NOSPC;
+	case NVME_SC_LBA_RANGE:
+		return BLK_STS_TARGET;
+	case NVME_SC_BAD_ATTRIBUTES:
 	case NVME_SC_ONCS_NOT_SUPPORTED:
+	case NVME_SC_INVALID_OPCODE:
+	case NVME_SC_INVALID_FIELD:
+	case NVME_SC_INVALID_NS:
 		return BLK_STS_NOTSUPP;
 	case NVME_SC_WRITE_FAULT:
 	case NVME_SC_READ_ERROR:
 	case NVME_SC_UNWRITTEN_BLOCK:
 	case NVME_SC_ACCESS_DENIED:
 	case NVME_SC_READ_ONLY:
+	case NVME_SC_COMPARE_FAILED:
 		return BLK_STS_MEDIUM;
 	case NVME_SC_GUARD_CHECK:
 	case NVME_SC_APPTAG_CHECK:
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
  2018-01-09 19:04 ` [PATCHv2 1/5] nvme: Add more command status translation Keith Busch
@ 2018-01-09 19:04 ` Keith Busch
  2018-01-10  8:02   ` [dm-devel] " Johannes Thumshirn
  2018-01-09 19:04 ` [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors Keith Busch
                   ` (3 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

This removes nvme multipath's specific status decoding to see if failover
is needed, using the generic blk_status_t that was decoded earlier. This
abstraction from the raw NVMe status means all status decoding exists
in one place.

Acked-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 drivers/nvme/host/core.c      |  9 +++++----
 drivers/nvme/host/multipath.c | 44 ++++++++-----------------------------------
 drivers/nvme/host/nvme.h      |  5 +++--
 3 files changed, 16 insertions(+), 42 deletions(-)

diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index 499f3141e365..82fb5bcfbf91 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -197,8 +197,10 @@ static inline bool nvme_req_needs_retry(struct request *req)
 
 void nvme_complete_rq(struct request *req)
 {
-	if (unlikely(nvme_req(req)->status && nvme_req_needs_retry(req))) {
-		if (nvme_req_needs_failover(req)) {
+	blk_status_t status = nvme_error_status(req);
+
+	if (unlikely(status != BLK_STS_OK && nvme_req_needs_retry(req))) {
+		if (nvme_req_needs_failover(req, status)) {
 			nvme_failover_req(req);
 			return;
 		}
@@ -209,8 +211,7 @@ void nvme_complete_rq(struct request *req)
 			return;
 		}
 	}
-
-	blk_mq_end_request(req, nvme_error_status(req));
+	blk_mq_end_request(req, status);
 }
 EXPORT_SYMBOL_GPL(nvme_complete_rq);
 
diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index 1218a9fca846..ae9abb600c0f 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -33,46 +33,18 @@ void nvme_failover_req(struct request *req)
 	kblockd_schedule_work(&ns->head->requeue_work);
 }
 
-bool nvme_req_needs_failover(struct request *req)
+bool nvme_req_needs_failover(struct request *req, blk_status_t error)
 {
 	if (!(req->cmd_flags & REQ_NVME_MPATH))
 		return false;
 
-	switch (nvme_req(req)->status & 0x7ff) {
-	/*
-	 * Generic command status:
-	 */
-	case NVME_SC_INVALID_OPCODE:
-	case NVME_SC_INVALID_FIELD:
-	case NVME_SC_INVALID_NS:
-	case NVME_SC_LBA_RANGE:
-	case NVME_SC_CAP_EXCEEDED:
-	case NVME_SC_RESERVATION_CONFLICT:
-		return false;
-
-	/*
-	 * I/O command set specific error.  Unfortunately these values are
-	 * reused for fabrics commands, but those should never get here.
-	 */
-	case NVME_SC_BAD_ATTRIBUTES:
-	case NVME_SC_INVALID_PI:
-	case NVME_SC_READ_ONLY:
-	case NVME_SC_ONCS_NOT_SUPPORTED:
-		WARN_ON_ONCE(nvme_req(req)->cmd->common.opcode ==
-			nvme_fabrics_command);
-		return false;
-
-	/*
-	 * Media and Data Integrity Errors:
-	 */
-	case NVME_SC_WRITE_FAULT:
-	case NVME_SC_READ_ERROR:
-	case NVME_SC_GUARD_CHECK:
-	case NVME_SC_APPTAG_CHECK:
-	case NVME_SC_REFTAG_CHECK:
-	case NVME_SC_COMPARE_FAILED:
-	case NVME_SC_ACCESS_DENIED:
-	case NVME_SC_UNWRITTEN_BLOCK:
+	switch (error) {
+	case BLK_STS_NOTSUPP:
+	case BLK_STS_NOSPC:
+	case BLK_STS_TARGET:
+	case BLK_STS_NEXUS:
+	case BLK_STS_MEDIUM:
+	case BLK_STS_PROTECTION:
 		return false;
 	}
 
diff --git a/drivers/nvme/host/nvme.h b/drivers/nvme/host/nvme.h
index ea1aa5283e8e..8d18cfa36093 100644
--- a/drivers/nvme/host/nvme.h
+++ b/drivers/nvme/host/nvme.h
@@ -401,7 +401,7 @@ extern const struct block_device_operations nvme_ns_head_ops;
 
 #ifdef CONFIG_NVME_MULTIPATH
 void nvme_failover_req(struct request *req);
-bool nvme_req_needs_failover(struct request *req);
+bool nvme_req_needs_failover(struct request *req, blk_status_t error);
 void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl);
 int nvme_mpath_alloc_disk(struct nvme_ctrl *ctrl,struct nvme_ns_head *head);
 void nvme_mpath_add_disk(struct nvme_ns_head *head);
@@ -421,7 +421,8 @@ struct nvme_ns *nvme_find_path(struct nvme_ns_head *head);
 static inline void nvme_failover_req(struct request *req)
 {
 }
-static inline bool nvme_req_needs_failover(struct request *req)
+static inline bool nvme_req_needs_failover(struct request *req,
+					   blk_status_t error)
 {
 	return false;
 }
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
  2018-01-09 19:04 ` [PATCHv2 1/5] nvme: Add more command status translation Keith Busch
  2018-01-09 19:04 ` [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover Keith Busch
@ 2018-01-09 19:04 ` Keith Busch
  2018-01-10  8:06   ` [dm-devel] " Johannes Thumshirn
  2018-01-09 19:04 ` [PATCHv2 4/5] nvme/multipath: Use blk_path_error Keith Busch
                   ` (2 subsequent siblings)
  5 siblings, 1 reply; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

This patch provides a common decoder for block status path related errors
that may be retried so various entities wishing to consult this do not
have to duplicate this decision.

Acked-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 include/linux/blk_types.h | 28 ++++++++++++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/include/linux/blk_types.h b/include/linux/blk_types.h
index a1e628e032da..2d973ac54b09 100644
--- a/include/linux/blk_types.h
+++ b/include/linux/blk_types.h
@@ -39,6 +39,34 @@ typedef u8 __bitwise blk_status_t;
 
 #define BLK_STS_AGAIN		((__force blk_status_t)12)
 
+/**
+ * blk_path_error - returns true if error may be path related
+ * @error: status the request was completed with
+ *
+ * Description:
+ *     This classifies block error status into non-retryable errors and ones
+ *     that may be successful if retried on a failover path.
+ *
+ * Return:
+ *     %false - retrying failover path will not help
+ *     %true  - may succeed if retried
+ */
+static inline bool blk_path_error(blk_status_t error)
+{
+	switch (error) {
+	case BLK_STS_NOTSUPP:
+	case BLK_STS_NOSPC:
+	case BLK_STS_TARGET:
+	case BLK_STS_NEXUS:
+	case BLK_STS_MEDIUM:
+	case BLK_STS_PROTECTION:
+		return false;
+	}
+
+	/* Anything else could be a path failure, so should be retried */
+	return true;
+}
+
 struct blk_issue_stat {
 	u64 stat;
 };
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCHv2 4/5] nvme/multipath: Use blk_path_error
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
                   ` (2 preceding siblings ...)
  2018-01-09 19:04 ` [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors Keith Busch
@ 2018-01-09 19:04 ` Keith Busch
  2018-01-10  8:06   ` [dm-devel] " Johannes Thumshirn
  2018-01-09 19:04 ` [PATCHv2 5/5] dm mpath: " Keith Busch
  2018-01-10  8:28 ` [PATCHv2 0/5] nvme/dm failover unification Christoph Hellwig
  5 siblings, 1 reply; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

Uses common code for determining if an error should be retried on
alternate path.

Acked-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 drivers/nvme/host/multipath.c | 14 +-------------
 1 file changed, 1 insertion(+), 13 deletions(-)

diff --git a/drivers/nvme/host/multipath.c b/drivers/nvme/host/multipath.c
index ae9abb600c0f..3b211d9e58b8 100644
--- a/drivers/nvme/host/multipath.c
+++ b/drivers/nvme/host/multipath.c
@@ -37,19 +37,7 @@ bool nvme_req_needs_failover(struct request *req, blk_status_t error)
 {
 	if (!(req->cmd_flags & REQ_NVME_MPATH))
 		return false;
-
-	switch (error) {
-	case BLK_STS_NOTSUPP:
-	case BLK_STS_NOSPC:
-	case BLK_STS_TARGET:
-	case BLK_STS_NEXUS:
-	case BLK_STS_MEDIUM:
-	case BLK_STS_PROTECTION:
-		return false;
-	}
-
-	/* Everything else could be a path failure, so should be retried */
-	return true;
+	return blk_path_error(error);
 }
 
 void nvme_kick_requeue_lists(struct nvme_ctrl *ctrl)
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* [PATCHv2 5/5] dm mpath: Use blk_path_error
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
                   ` (3 preceding siblings ...)
  2018-01-09 19:04 ` [PATCHv2 4/5] nvme/multipath: Use blk_path_error Keith Busch
@ 2018-01-09 19:04 ` Keith Busch
  2018-01-10  8:07   ` [dm-devel] " Johannes Thumshirn
  2018-01-10  8:28 ` [PATCHv2 0/5] nvme/dm failover unification Christoph Hellwig
  5 siblings, 1 reply; 13+ messages in thread
From: Keith Busch @ 2018-01-09 19:04 UTC (permalink / raw)
  To: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe
  Cc: Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg, Keith Busch

Uses common code for determining if an error should be retried on
alternate path.

Acked-by: Mike Snitzer <snitzer@redhat.com>
Reviewed-by: Hannes Reinecke <hare@suse.com>
Signed-off-by: Keith Busch <keith.busch@intel.com>
---
 drivers/md/dm-mpath.c | 19 ++-----------------
 1 file changed, 2 insertions(+), 17 deletions(-)

diff --git a/drivers/md/dm-mpath.c b/drivers/md/dm-mpath.c
index f7810cc869ac..ef57c6d1c887 100644
--- a/drivers/md/dm-mpath.c
+++ b/drivers/md/dm-mpath.c
@@ -1475,21 +1475,6 @@ static void activate_path_work(struct work_struct *work)
 	activate_or_offline_path(pgpath);
 }
 
-static int noretry_error(blk_status_t error)
-{
-	switch (error) {
-	case BLK_STS_NOTSUPP:
-	case BLK_STS_NOSPC:
-	case BLK_STS_TARGET:
-	case BLK_STS_NEXUS:
-	case BLK_STS_MEDIUM:
-		return 1;
-	}
-
-	/* Anything else could be a path failure, so should be retried */
-	return 0;
-}
-
 static int multipath_end_io(struct dm_target *ti, struct request *clone,
 			    blk_status_t error, union map_info *map_context)
 {
@@ -1508,7 +1493,7 @@ static int multipath_end_io(struct dm_target *ti, struct request *clone,
 	 * request into dm core, which will remake a clone request and
 	 * clone bios for it and resubmit it later.
 	 */
-	if (error && !noretry_error(error)) {
+	if (error && blk_path_error(error)) {
 		struct multipath *m = ti->private;
 
 		r = DM_ENDIO_REQUEUE;
@@ -1544,7 +1529,7 @@ static int multipath_end_io_bio(struct dm_target *ti, struct bio *clone,
 	unsigned long flags;
 	int r = DM_ENDIO_DONE;
 
-	if (!*error || noretry_error(*error))
+	if (!*error || !blk_path_error(*error))
 		goto done;
 
 	if (pgpath)
-- 
2.13.6

^ permalink raw reply related	[flat|nested] 13+ messages in thread

* Re: [dm-devel] [PATCHv2 1/5] nvme: Add more command status translation
  2018-01-09 19:04 ` [PATCHv2 1/5] nvme: Add more command status translation Keith Busch
@ 2018-01-10  7:58   ` Johannes Thumshirn
  0 siblings, 0 replies; 13+ messages in thread
From: Johannes Thumshirn @ 2018-01-10  7:58 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Hannes Reinecke, Sagi Grimberg,
	Martin K . Petersen, James Smart, Bart VanAssche

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dm-devel] [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover
  2018-01-09 19:04 ` [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover Keith Busch
@ 2018-01-10  8:02   ` Johannes Thumshirn
  0 siblings, 0 replies; 13+ messages in thread
From: Johannes Thumshirn @ 2018-01-10  8:02 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Hannes Reinecke, Sagi Grimberg,
	Martin K . Petersen, James Smart, Bart VanAssche

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dm-devel] [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors
  2018-01-09 19:04 ` [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors Keith Busch
@ 2018-01-10  8:06   ` Johannes Thumshirn
  0 siblings, 0 replies; 13+ messages in thread
From: Johannes Thumshirn @ 2018-01-10  8:06 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Hannes Reinecke, Sagi Grimberg,
	Martin K . Petersen, James Smart, Bart VanAssche

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dm-devel] [PATCHv2 4/5] nvme/multipath: Use blk_path_error
  2018-01-09 19:04 ` [PATCHv2 4/5] nvme/multipath: Use blk_path_error Keith Busch
@ 2018-01-10  8:06   ` Johannes Thumshirn
  0 siblings, 0 replies; 13+ messages in thread
From: Johannes Thumshirn @ 2018-01-10  8:06 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Hannes Reinecke, Sagi Grimberg,
	Martin K . Petersen, James Smart, Bart VanAssche

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [dm-devel] [PATCHv2 5/5] dm mpath: Use blk_path_error
  2018-01-09 19:04 ` [PATCHv2 5/5] dm mpath: " Keith Busch
@ 2018-01-10  8:07   ` Johannes Thumshirn
  0 siblings, 0 replies; 13+ messages in thread
From: Johannes Thumshirn @ 2018-01-10  8:07 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Hannes Reinecke, Sagi Grimberg,
	Martin K . Petersen, James Smart, Bart VanAssche

Looks good,
Reviewed-by: Johannes Thumshirn <jthumshirn@suse.de>
-- 
Johannes Thumshirn                                          Storage
jthumshirn@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

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCHv2 0/5] nvme/dm failover unification
  2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
                   ` (4 preceding siblings ...)
  2018-01-09 19:04 ` [PATCHv2 5/5] dm mpath: " Keith Busch
@ 2018-01-10  8:28 ` Christoph Hellwig
  2018-01-10 17:52   ` Jens Axboe
  5 siblings, 1 reply; 13+ messages in thread
From: Christoph Hellwig @ 2018-01-10  8:28 UTC (permalink / raw)
  To: Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Christoph Hellwig,
	Mike Snitzer, Jens Axboe, Bart VanAssche, James Smart,
	Martin K . Petersen, Hannes Reinecke, Sagi Grimberg

The whole series looks fine to me:

Reviewed-by: Christoph Hellwig <hch@lst.de>

Jens, do you want me to apply this to the nvme tree, or pick it up
directly?

^ permalink raw reply	[flat|nested] 13+ messages in thread

* Re: [PATCHv2 0/5] nvme/dm failover unification
  2018-01-10  8:28 ` [PATCHv2 0/5] nvme/dm failover unification Christoph Hellwig
@ 2018-01-10 17:52   ` Jens Axboe
  0 siblings, 0 replies; 13+ messages in thread
From: Jens Axboe @ 2018-01-10 17:52 UTC (permalink / raw)
  To: Christoph Hellwig, Keith Busch
  Cc: Linux Block, Linux NVMe, Device Mapper, Mike Snitzer,
	Bart VanAssche, James Smart, Martin K . Petersen, Hannes Reinecke,
	Sagi Grimberg

On 1/10/18 1:28 AM, Christoph Hellwig wrote:
> The whole series looks fine to me:
> 
> Reviewed-by: Christoph Hellwig <hch@lst.de>
> 
> Jens, do you want me to apply this to the nvme tree, or pick it up
> directly?

I queued it up, thanks.

-- 
Jens Axboe

^ permalink raw reply	[flat|nested] 13+ messages in thread

end of thread, other threads:[~2018-01-10 17:52 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2018-01-09 19:04 [PATCHv2 0/5] nvme/dm failover unification Keith Busch
2018-01-09 19:04 ` [PATCHv2 1/5] nvme: Add more command status translation Keith Busch
2018-01-10  7:58   ` [dm-devel] " Johannes Thumshirn
2018-01-09 19:04 ` [PATCHv2 2/5] nvme/multipath: Consult blk_status_t for failover Keith Busch
2018-01-10  8:02   ` [dm-devel] " Johannes Thumshirn
2018-01-09 19:04 ` [PATCHv2 3/5] block: Provide blk_status_t decoding for path errors Keith Busch
2018-01-10  8:06   ` [dm-devel] " Johannes Thumshirn
2018-01-09 19:04 ` [PATCHv2 4/5] nvme/multipath: Use blk_path_error Keith Busch
2018-01-10  8:06   ` [dm-devel] " Johannes Thumshirn
2018-01-09 19:04 ` [PATCHv2 5/5] dm mpath: " Keith Busch
2018-01-10  8:07   ` [dm-devel] " Johannes Thumshirn
2018-01-10  8:28 ` [PATCHv2 0/5] nvme/dm failover unification Christoph Hellwig
2018-01-10 17:52   ` Jens Axboe

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).