mirror of https://gitee.com/openkylin/libvirt.git
conf: Reuse virDomainDefCheckDuplicateDiskWWN to check disk serial too
Rename the function to virDomainDefCheckDuplicateDiskInfo and make it check disk serials too. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1245013
This commit is contained in:
parent
199d17de32
commit
34315608a8
|
@ -24451,15 +24451,16 @@ virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virDomainDefCheckDuplicateDiskWWN(virDomainDefPtr def)
|
virDomainDefCheckDuplicateDiskInfo(virDomainDefPtr def)
|
||||||
{
|
{
|
||||||
size_t i;
|
size_t i;
|
||||||
size_t j;
|
size_t j;
|
||||||
|
|
||||||
for (i = 0; i < def->ndisks; i++) {
|
for (i = 0; i < def->ndisks; i++) {
|
||||||
if (def->disks[i]->wwn) {
|
if (def->disks[i]->wwn || def->disks[i]->serial) {
|
||||||
for (j = i + 1; j < def->ndisks; j++) {
|
for (j = i + 1; j < def->ndisks; j++) {
|
||||||
if (STREQ_NULLABLE(def->disks[i]->wwn,
|
if (def->disks[i]->wwn &&
|
||||||
|
STREQ_NULLABLE(def->disks[i]->wwn,
|
||||||
def->disks[j]->wwn)) {
|
def->disks[j]->wwn)) {
|
||||||
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
_("Disks '%s' and '%s' have identical WWN"),
|
_("Disks '%s' and '%s' have identical WWN"),
|
||||||
|
@ -24467,6 +24468,16 @@ virDomainDefCheckDuplicateDiskWWN(virDomainDefPtr def)
|
||||||
def->disks[j]->dst);
|
def->disks[j]->dst);
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (def->disks[i]->serial &&
|
||||||
|
STREQ_NULLABLE(def->disks[i]->serial,
|
||||||
|
def->disks[j]->serial)) {
|
||||||
|
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
|
||||||
|
_("Disks '%s' and '%s' have identical serial"),
|
||||||
|
def->disks[i]->dst,
|
||||||
|
def->disks[j]->dst);
|
||||||
|
return -1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -3219,7 +3219,7 @@ virDomainParseMemory(const char *xpath,
|
||||||
bool virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
|
bool virDomainDefNeedsPlacementAdvice(virDomainDefPtr def)
|
||||||
ATTRIBUTE_NONNULL(1);
|
ATTRIBUTE_NONNULL(1);
|
||||||
|
|
||||||
int virDomainDefCheckDuplicateDiskWWN(virDomainDefPtr def)
|
int virDomainDefCheckDuplicateDiskInfo(virDomainDefPtr def)
|
||||||
ATTRIBUTE_NONNULL(1);
|
ATTRIBUTE_NONNULL(1);
|
||||||
|
|
||||||
#endif /* __DOMAIN_CONF_H */
|
#endif /* __DOMAIN_CONF_H */
|
||||||
|
|
|
@ -200,7 +200,7 @@ virDomainCpuPlacementModeTypeFromString;
|
||||||
virDomainCpuPlacementModeTypeToString;
|
virDomainCpuPlacementModeTypeToString;
|
||||||
virDomainDefAddImplicitControllers;
|
virDomainDefAddImplicitControllers;
|
||||||
virDomainDefCheckABIStability;
|
virDomainDefCheckABIStability;
|
||||||
virDomainDefCheckDuplicateDiskWWN;
|
virDomainDefCheckDuplicateDiskInfo;
|
||||||
virDomainDefCheckUnsupportedMemoryHotplug;
|
virDomainDefCheckUnsupportedMemoryHotplug;
|
||||||
virDomainDefClearCCWAddresses;
|
virDomainDefClearCCWAddresses;
|
||||||
virDomainDefClearDeviceAliases;
|
virDomainDefClearDeviceAliases;
|
||||||
|
|
|
@ -4629,7 +4629,7 @@ int qemuProcessStart(virConnectPtr conn,
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!migrateFrom && !snapshot &&
|
if (!migrateFrom && !snapshot &&
|
||||||
virDomainDefCheckDuplicateDiskWWN(vm->def) < 0)
|
virDomainDefCheckDuplicateDiskInfo(vm->def) < 0)
|
||||||
goto cleanup;
|
goto cleanup;
|
||||||
|
|
||||||
/* "volume" type disk's source must be translated before
|
/* "volume" type disk's source must be translated before
|
||||||
|
|
Loading…
Reference in New Issue