]> xenbits.xensource.com Git - qemu-xen.git/commitdiff
hw/nvme: store a pointer to the NvmeSubsystem in the NvmeNamespace
authorNiklas Cassel <niklas.cassel@wdc.com>
Mon, 20 Feb 2023 11:59:23 +0000 (12:59 +0100)
committerKlaus Jensen <k.jensen@samsung.com>
Mon, 6 Mar 2023 14:28:02 +0000 (15:28 +0100)
Each NvmeNamespace can be used by serveral controllers,
but a NvmeNamespace can at most belong to a single NvmeSubsystem.
Store a pointer to the NvmeSubsystem, if the namespace was realized
with a NvmeSubsystem.

Reviewed-by: Keith Busch <kbusch@kernel.org>
Signed-off-by: Niklas Cassel <niklas.cassel@wdc.com>
Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
hw/nvme/ns.c
hw/nvme/nvme.h

index 62a1f97be0101e019d75028a787e77ce0bdab0ce..8ebab4fbceafeb8e0eade33d8cd53f2ba4d1d0f4 100644 (file)
@@ -561,6 +561,7 @@ static void nvme_ns_realize(DeviceState *dev, Error **errp)
         if (!qdev_set_parent_bus(dev, &subsys->bus.parent_bus, errp)) {
             return;
         }
+        ns->subsys = subsys;
     }
 
     if (nvme_ns_setup(ns, errp)) {
index 16da27a69bfbfd3b8710e46dc3a20b8a24ff8e7f..5d221073ac685642a776fb80656839305aabd30d 100644 (file)
@@ -167,6 +167,7 @@ typedef struct NvmeNamespace {
     int32_t         nr_active_zones;
 
     NvmeNamespaceParams params;
+    NvmeSubsystem *subsys;
 
     struct {
         uint32_t err_rec;