hw/block/nvme: update nsid when registered
authorKlaus Jensen <k.jensen@samsung.com>
Thu, 1 Oct 2020 21:37:20 +0000 (23:37 +0200)
committerKlaus Jensen <k.jensen@samsung.com>
Tue, 27 Oct 2020 06:24:47 +0000 (07:24 +0100)
If the user does not specify an nsid parameter on the nvme-ns device,
nvme_register_namespace will find the first free namespace id and assign
that.

This fix makes sure the assigned id is saved.

Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
Reviewed-by: Dmitry Fomichev <dmitry.fomichev@wdc.com>
hw/block/nvme.c

index 5768a6804f41bd71aa02cfe8fba9cbb1a20a2ff3..2225b944f93554c2ab95f334ae28411c39050c8a 100644 (file)
@@ -2578,7 +2578,7 @@ int nvme_register_namespace(NvmeCtrl *n, NvmeNamespace *ns, Error **errp)
         for (int i = 1; i <= n->num_namespaces; i++) {
             NvmeNamespace *ns = nvme_ns(n, i);
             if (!ns) {
-                nsid = i;
+                nsid = ns->params.nsid = i;
                 break;
             }
         }