[PATCH v2 06/12] conf: Try controller add when searching hostdev bus for unit

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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: John Ferlan <jferlan@xxxxxxxxxx>
---
 src/conf/domain_conf.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 80daba9..9c6c739 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -3953,7 +3953,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)
@@ -3972,6 +3972,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;
-- 
2.1.0

--
libvir-list mailing list
libvir-list@xxxxxxxxxx
https://www.redhat.com/mailman/listinfo/libvir-list



[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]