ns.c (534a93d3a0bbde4248889ece1e0874ab98a96508) ns.c (771dbc3ac484af35cddf7e4971e66a1fd1a07156)
1/*
2 * QEMU NVM Express Virtual Namespace
3 *
4 * Copyright (c) 2019 CNEX Labs
5 * Copyright (c) 2020 Samsung Electronics
6 *
7 * Authors:
8 * Klaus Jensen <k.jensen@samsung.com>

--- 578 unchanged lines hidden (view full) ---

587 error_setg(errp, "namespace id '%d' already allocated", nsid);
588 return;
589 }
590 }
591
592 if (subsys) {
593 subsys->namespaces[nsid] = ns;
594
1/*
2 * QEMU NVM Express Virtual Namespace
3 *
4 * Copyright (c) 2019 CNEX Labs
5 * Copyright (c) 2020 Samsung Electronics
6 *
7 * Authors:
8 * Klaus Jensen <k.jensen@samsung.com>

--- 578 unchanged lines hidden (view full) ---

587 error_setg(errp, "namespace id '%d' already allocated", nsid);
588 return;
589 }
590 }
591
592 if (subsys) {
593 subsys->namespaces[nsid] = ns;
594
595 ns->id_ns.endgid = cpu_to_le16(0x1);
596
595 if (ns->params.detached) {
596 return;
597 }
598
599 if (ns->params.shared) {
600 for (i = 0; i < ARRAY_SIZE(subsys->ctrls); i++) {
601 NvmeCtrl *ctrl = subsys->ctrls[i];
602
603 if (ctrl && ctrl != SUBSYS_SLOT_RSVD) {
604 nvme_attach_ns(ctrl, ns);
605 }
606 }
607
608 return;
609 }
597 if (ns->params.detached) {
598 return;
599 }
600
601 if (ns->params.shared) {
602 for (i = 0; i < ARRAY_SIZE(subsys->ctrls); i++) {
603 NvmeCtrl *ctrl = subsys->ctrls[i];
604
605 if (ctrl && ctrl != SUBSYS_SLOT_RSVD) {
606 nvme_attach_ns(ctrl, ns);
607 }
608 }
609
610 return;
611 }
612
610 }
611
612 nvme_attach_ns(n, ns);
613}
614
615static Property nvme_ns_props[] = {
616 DEFINE_BLOCK_PROPERTIES(NvmeNamespace, blkconf),
617 DEFINE_PROP_BOOL("detached", NvmeNamespace, params.detached, false),

--- 71 unchanged lines hidden ---
613 }
614
615 nvme_attach_ns(n, ns);
616}
617
618static Property nvme_ns_props[] = {
619 DEFINE_BLOCK_PROPERTIES(NvmeNamespace, blkconf),
620 DEFINE_PROP_BOOL("detached", NvmeNamespace, params.detached, false),

--- 71 unchanged lines hidden ---