hw/block/nvme: split setup and register for namespace
In NVMe, namespace is being attached to process I/O. We register NVMe namespace to a controller via nvme_register_namespace() during nvme_ns_setup(). This is main reason of receiving NvmeCtrl object instance to this function to map the namespace to a controller. To make namespace instance more independent, it should be split into two parts: setup and register. This patch split them into two differnt parts, and finally nvme_ns_setup() does not have nothing to do with NvmeCtrl instance at all. This patch is a former patch to introduce NVMe subsystem scheme to the existing design especially for multi-path. In that case, it should be split into two to make namespace independent from a controller. Signed-off-by: Minwoo Im <minwoo.im.dev@gmail.com> Signed-off-by: Klaus Jensen <k.jensen@samsung.com>
This commit is contained in:
parent
337ccd7650
commit
15d024d4aa
@ -321,10 +321,6 @@ int nvme_ns_setup(NvmeCtrl *n, NvmeNamespace *ns, Error **errp)
|
|||||||
nvme_ns_init_zoned(ns, 0);
|
nvme_ns_init_zoned(ns, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nvme_register_namespace(n, ns, errp)) {
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -362,6 +358,13 @@ static void nvme_ns_realize(DeviceState *dev, Error **errp)
|
|||||||
"could not setup namespace: ");
|
"could not setup namespace: ");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (nvme_register_namespace(n, ns, errp)) {
|
||||||
|
error_propagate_prepend(errp, local_err,
|
||||||
|
"could not register namespace: ");
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static Property nvme_ns_props[] = {
|
static Property nvme_ns_props[] = {
|
||||||
|
Loading…
Reference in New Issue
Block a user