From: Michal Privoznik <[email protected]>

Assigning device should happen from ch_hotplug.c (just like it's
done for disks currently) not in ch_process.c. Move alias
assignment out of chProcessAddNetworkDevice(). And while at it,
mimic what's done with disks and have net hotplug handling done
from a function.

Signed-off-by: Michal Privoznik <[email protected]>
---
 src/ch/ch_hotplug.c | 23 ++++++++++++++++++++---
 src/ch/ch_process.c |  1 -
 2 files changed, 20 insertions(+), 4 deletions(-)

diff --git a/src/ch/ch_hotplug.c b/src/ch/ch_hotplug.c
index fabca2a73a..b296fd11b1 100644
--- a/src/ch/ch_hotplug.c
+++ b/src/ch/ch_hotplug.c
@@ -53,6 +53,25 @@ chDomainAddDisk(virCHMonitor *mon,
     return 0;
 }
 
+
+static int
+chDomainAddNet(virCHDriver *driver,
+               virCHMonitor *mon,
+               virDomainObj *vm,
+               virDomainNetDef *net)
+{
+    chAssignDeviceNetAlias(vm->def, net);
+
+    if (chProcessAddNetworkDevice(driver, mon, vm->def, net, NULL, NULL) < 0) {
+        return -1;
+    }
+
+    virDomainNetInsert(vm->def, net);
+
+    return 0;
+}
+
+
 static int
 chDomainAttachDeviceLive(virCHDriver *driver,
                          virDomainObj *vm,
@@ -75,12 +94,10 @@ chDomainAttachDeviceLive(virCHDriver *driver,
         break;
 
     case VIR_DOMAIN_DEVICE_NET:
-        if (chProcessAddNetworkDevice(driver, mon, vm->def, dev->data.net,
-                                      NULL, NULL) < 0) {
+        if (chDomainAddNet(driver, mon, vm, dev->data.net) < 0) {
             break;
         }
 
-        virDomainNetInsert(vm->def, dev->data.net);
         alias = dev->data.net->info.alias;
         dev->data.net = NULL;
         ret = 0;
diff --git a/src/ch/ch_process.c b/src/ch/ch_process.c
index f16f2b3916..29db853a7f 100644
--- a/src/ch/ch_process.c
+++ b/src/ch/ch_process.c
@@ -685,7 +685,6 @@ chProcessAddNetworkDevice(virCHDriver *driver,
         return -1;
     }
 
-    chAssignDeviceNetAlias(vmdef, net);
     if (virCHMonitorBuildNetJson(net, &netJSONPayload) < 0) {
         virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
                         _("Failed to build net json"));
-- 
2.51.0

Reply via email to