Commit 0c284db7 authored by Keith Busch's avatar Keith Busch Committed by Jens Axboe

nvme: check namespace head shared property

Reject a new shared namespace if a duplicate unshared namespace exists.
Signed-off-by: default avatarKeith Busch <kbusch@kernel.org>
Reviewed-by: default avatarSagi Grimberg <sagi@grimberg.me>
Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
Signed-off-by: default avatarJens Axboe <axboe@kernel.dk>
parent 9ad1927a
...@@ -3496,8 +3496,9 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid, ...@@ -3496,8 +3496,9 @@ static int nvme_init_ns_head(struct nvme_ns *ns, unsigned nsid,
ret = PTR_ERR(head); ret = PTR_ERR(head);
goto out_unlock; goto out_unlock;
} }
head->shared = is_shared;
} else { } else {
if (!is_shared) { if (!is_shared || !head->shared) {
dev_err(ctrl->device, dev_err(ctrl->device,
"Duplicate unshared namespace %d\n", "Duplicate unshared namespace %d\n",
nsid); nsid);
......
...@@ -352,6 +352,7 @@ struct nvme_ns_head { ...@@ -352,6 +352,7 @@ struct nvme_ns_head {
struct nvme_ns_ids ids; struct nvme_ns_ids ids;
struct list_head entry; struct list_head entry;
struct kref ref; struct kref ref;
bool shared;
int instance; int instance;
#ifdef CONFIG_NVME_MULTIPATH #ifdef CONFIG_NVME_MULTIPATH
struct gendisk *disk; struct gendisk *disk;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment