[PATCH] nvme: warn about shared namespaces without CONFIG_NVME_MULTIPATH
Christoph Hellwig
hch at lst.de
Tue Mar 15 07:51:41 PDT 2022
Start warning about exposing a namespace as multiple block devices,
and set a fixed deprecation release.
Signed-off-by: Christoph Hellwig <hch at lst.de>
---
drivers/block/loop.c | 1 +
drivers/nvme/host/core.c | 8 ++++++++
2 files changed, 9 insertions(+)
diff --git a/drivers/block/loop.c b/drivers/block/loop.c
index 8fb89d0624fc5..e733c48de2e90 100644
--- a/drivers/block/loop.c
+++ b/drivers/block/loop.c
@@ -2092,6 +2092,7 @@ static void loop_remove(struct loop_device *lo)
del_gendisk(lo->lo_disk);
blk_cleanup_disk(lo->lo_disk);
blk_mq_free_tag_set(&lo->tag_set);
+
mutex_lock(&loop_ctl_mutex);
idr_remove(&loop_index_idr, lo->lo_number);
mutex_unlock(&loop_ctl_mutex);
diff --git a/drivers/nvme/host/core.c b/drivers/nvme/host/core.c
index fd9878671d734..75f7c53a67811 100644
--- a/drivers/nvme/host/core.c
+++ b/drivers/nvme/host/core.c
@@ -3879,6 +3879,14 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid,
nsid);
goto out_put_ns_head;
}
+
+ if (!multipath && !list_empty(&head->list)) {
+ dev_warn(ctrl->device,
+ "Found shared namespace %d, but multipathing not supported.\n",
+ nsid);
+ dev_warn_once(ctrl->device,
+ "Support for shared namespaces without CONFIG_NVME_MULTIPATH is deprecated and will be removed in Linux 6.0\n.");
+ }
}
list_add_tail_rcu(&ns->siblings, &head->list);
--
2.30.2
More information about the Linux-nvme
mailing list