From 7dbe9cfa0f82c69f68999a0f4af83353c9dd595e Mon Sep 17 00:00:00 2001 From: Ben Walker Date: Tue, 3 Nov 2020 11:14:17 -0700 Subject: [PATCH] bdev/nvme: When detecing multipath, only compare active namespaces Calling spdk_nvme_ns_get_data(ns) on an inactive namespace will crash. Signed-off-by: Ben Walker Change-Id: Ib8cfa84e785a4a04dc3b1826c700a22eeec51e3c Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5013 Tested-by: SPDK CI Jenkins Reviewed-by: Shuhei Matsumoto Reviewed-by: Jim Harris --- module/bdev/nvme/bdev_nvme.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/module/bdev/nvme/bdev_nvme.c b/module/bdev/nvme/bdev_nvme.c index 837a325e0..3ed2cb3a4 100644 --- a/module/bdev/nvme/bdev_nvme.c +++ b/module/bdev/nvme/bdev_nvme.c @@ -1784,6 +1784,10 @@ bdev_nvme_add_trid(struct nvme_bdev_ctrlr *nvme_bdev_ctrlr, struct spdk_nvme_tra } for (i = 1; i <= nvme_bdev_ctrlr->num_ns; i++) { + if (!spdk_nvme_ctrlr_is_active_ns(nvme_bdev_ctrlr->ctrlr, i)) { + continue; + } + ns = spdk_nvme_ctrlr_get_ns(nvme_bdev_ctrlr->ctrlr, i); new_ns = spdk_nvme_ctrlr_get_ns(new_ctrlr, i); assert(ns != NULL);