提交 714b38cb 编写于 作者: P Peter Krempa

qemu: Enforce WWN to be unique among VM's disks

Operating systems use the identifier to name the disks. As the name
suggests the ID should be unique.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1208009
上级 c35b0110
......@@ -2453,7 +2453,8 @@
<dt><code>wwn</code></dt>
<dd>If present, this element specifies the WWN (World Wide Name)
of a virtual hard disk or CD-ROM drive. It must be composed
of 16 hexadecimal digits.
of 16 hexadecimal digits and must be unique (at least among
disks of a single domain)
<span class='since'>Since 0.10.1</span>
</dd>
<dt><code>vendor</code></dt>
......
......@@ -23186,3 +23186,28 @@ virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
return false;
}
int
virDomainDefCheckDuplicateDiskWWN(virDomainDefPtr def)
{
size_t i;
size_t j;
for (i = 0; i < def->ndisks; i++) {
if (def->disks[i]->wwn) {
for (j = i + 1; j < def->ndisks; j++) {
if (STREQ_NULLABLE(def->disks[i]->wwn,
def->disks[j]->wwn)) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
_("Disks '%s' and '%s' have identical WWN"),
def->disks[i]->dst,
def->disks[j]->dst);
return -1;
}
}
}
}
return 0;
}
......@@ -3080,4 +3080,7 @@ virDomainParseMemory(const char *xpath,
bool virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
ATTRIBUTE_NONNULL(1);
int virDomainDefCheckDuplicateDiskWWN(virDomainDefPtr def)
ATTRIBUTE_NONNULL(1);
#endif /* __DOMAIN_CONF_H */
......@@ -198,6 +198,7 @@ virDomainCpuPlacementModeTypeFromString;
virDomainCpuPlacementModeTypeToString;
virDomainDefAddImplicitControllers;
virDomainDefCheckABIStability;
virDomainDefCheckDuplicateDiskWWN;
virDomainDefCheckUnsupportedMemoryHotplug;
virDomainDefClearCCWAddresses;
virDomainDefClearDeviceAliases;
......
......@@ -4568,6 +4568,9 @@ int qemuProcessStart(virConnectPtr conn,
goto cleanup;
}
if (virDomainDefCheckDuplicateDiskWWN(vm->def) < 0)
goto cleanup;
/* "volume" type disk's source must be translated before
* cgroup and security setting.
*/
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册