Reject a new shared namespace if a duplicate unshared namespace exists.
Signed-off-by: Keith Busch <kbusch@kernel.org>
Reviewed-by: Sagi Grimberg <sagi@grimberg.me>
Signed-off-by: Christoph Hellwig <hch@lst.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
                        ret = PTR_ERR(head);
                        goto out_unlock;
                }
+               head->shared = is_shared;
        } else {
-               if (!is_shared) {
+               if (!is_shared || !head->shared) {
                        dev_err(ctrl->device,
                                "Duplicate unshared namespace %d\n",
                                        nsid);
 
        struct nvme_ns_ids      ids;
        struct list_head        entry;
        struct kref             ref;
+       bool                    shared;
        int                     instance;
 #ifdef CONFIG_NVME_MULTIPATH
        struct gendisk          *disk;