提交 0785966d 编写于 作者: J John Ferlan

conf: Try controller add when searching hostdev bus for unit

If virDomainControllerSCSINextUnit failed to find a slot on the current
VIR_DOMAIN_CONTROLLER_TYPE_SCSI controller(s), try to add a new controller;
otherwise, there may be multiple unit=0 entries for the same "next"
controller.
Signed-off-by: NJohn Ferlan <jferlan@redhat.com>
上级 83f2b62c
......@@ -3985,7 +3985,7 @@ virDomainHostdevAssignAddress(virDomainXMLOptionPtr xmlopt,
int next_unit = 0;
unsigned controller = 0;
size_t i;
int ret;
int ret = -1;
for (i = 0; i < def->ncontrollers; i++) {
if (def->controllers[i]->type != VIR_DOMAIN_CONTROLLER_TYPE_SCSI)
......@@ -4004,6 +4004,17 @@ virDomainHostdevAssignAddress(virDomainXMLOptionPtr xmlopt,
}
}
/* If failed to find any VIR_DOMAIN_CONTROLLER_TYPE_SCSI or any space
* on existing VIR_DOMAIN_CONTROLLER_TYPE_SCSI controller(s), then
* try to add a new controller resulting in placement of this entry
* as unit=0
*/
if (ret == -1 &&
virDomainDefMaybeAddController((virDomainDefPtr) def,
VIR_DOMAIN_CONTROLLER_TYPE_SCSI,
controller, -1) < 0)
return -1;
hostdev->info->type = VIR_DOMAIN_DEVICE_ADDRESS_TYPE_DRIVE;
hostdev->info->addr.drive.controller = controller;
hostdev->info->addr.drive.bus = 0;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册