]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: Move and rename qemuDomainCheckEjectableMedia to qemuProcessRefreshDisks
authorPeter Krempa <pkrempa@redhat.com>
Mon, 23 May 2016 12:00:35 +0000 (14:00 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 25 May 2016 08:15:54 +0000 (10:15 +0200)
Move it to a more sane place since it's refreshing data about disks.

src/qemu/qemu_hotplug.c
src/qemu/qemu_hotplug.h
src/qemu/qemu_migration.c
src/qemu/qemu_process.c
src/qemu/qemu_process.h

index 5f34a768bdad866f6d0dc142c4c0280f4665748e..286a4a4414e516eab5b3fdf5bd030ee8689ccb2a 100644 (file)
@@ -283,54 +283,6 @@ qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
     goto cleanup;
 }
 
-int
-qemuDomainCheckEjectableMedia(virQEMUDriverPtr driver,
-                              virDomainObjPtr vm,
-                              qemuDomainAsyncJob asyncJob)
-{
-    qemuDomainObjPrivatePtr priv = vm->privateData;
-    virHashTablePtr table = NULL;
-    int ret = -1;
-    size_t i;
-
-    if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
-        table = qemuMonitorGetBlockInfo(priv->mon);
-        if (qemuDomainObjExitMonitor(driver, vm) < 0)
-            goto cleanup;
-    }
-
-    if (!table)
-        goto cleanup;
-
-    for (i = 0; i < vm->def->ndisks; i++) {
-        virDomainDiskDefPtr disk = vm->def->disks[i];
-        struct qemuDomainDiskInfo *info;
-
-        if (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK ||
-            disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
-                 continue;
-        }
-
-        info = qemuMonitorBlockInfoLookup(table, disk->info.alias);
-        if (!info)
-            goto cleanup;
-
-        if (info->tray_open) {
-            if (virDomainDiskGetSource(disk))
-                ignore_value(virDomainDiskSetSource(disk, NULL));
-
-            disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
-        } else {
-            disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
-        }
-    }
-
-    ret = 0;
-
- cleanup:
-    virHashFree(table);
-    return ret;
-}
 
 static int
 qemuDomainAttachVirtioDiskDevice(virConnectPtr conn,
index 868b4cff5c846e04bb869eef8eb1ca44bd6ab49e..165d345bbcbd3c0ff63bf983a1d743d2e36ac2cc 100644 (file)
@@ -33,9 +33,6 @@ int qemuDomainChangeEjectableMedia(virQEMUDriverPtr driver,
                                    virDomainDiskDefPtr disk,
                                    virStorageSourcePtr newsrc,
                                    bool force);
-int qemuDomainCheckEjectableMedia(virQEMUDriverPtr driver,
-                                  virDomainObjPtr vm,
-                                  qemuDomainAsyncJob asyncJob);
 int qemuDomainAttachControllerDevice(virQEMUDriverPtr driver,
                                      virDomainObjPtr vm,
                                      virDomainControllerDefPtr controller);
index 25093ac2bf6d912bff2a82a8bcc0ec5f633ff661..c5b2963d65b62818a268a8f5b3804b6989ad3e67 100644 (file)
@@ -3263,7 +3263,7 @@ qemuMigrationBegin(virConnectPtr conn,
      * We don't want to require them on the destination.
      */
     if (!(flags & VIR_MIGRATE_OFFLINE) &&
-        qemuDomainCheckEjectableMedia(driver, vm, asyncJob) < 0)
+        qemuProcessRefreshDisks(driver, vm, asyncJob) < 0)
         goto endjob;
 
     if (!(xml = qemuMigrationBeginPhase(driver, vm, xmlin, dname,
index b2669c0e0de42abc739a28ccd32e66d8ee405a6b..f2e284ffe6297272fc9d7c397277889e164a63ee 100644 (file)
@@ -3306,7 +3306,7 @@ qemuProcessReconnect(void *opaque)
     if (qemuProcessFiltersInstantiate(obj->def))
         goto error;
 
-    if (qemuDomainCheckEjectableMedia(driver, obj, QEMU_ASYNC_JOB_NONE) < 0)
+    if (qemuProcessRefreshDisks(driver, obj, QEMU_ASYNC_JOB_NONE) < 0)
         goto error;
 
     if (qemuRefreshVirtioChannelState(driver, obj) < 0)
@@ -5316,8 +5316,8 @@ qemuProcessLaunch(virConnectPtr conn,
     if (qemuProcessUpdateVideoRamSize(driver, vm, asyncJob) < 0)
         goto cleanup;
 
-    VIR_DEBUG("Updating ejectable media status");
-    if (qemuDomainCheckEjectableMedia(driver, vm, asyncJob) < 0)
+    VIR_DEBUG("Updating disk data");
+    if (qemuProcessRefreshDisks(driver, vm, asyncJob) < 0)
         goto cleanup;
 
     if (flags & VIR_QEMU_PROCESS_START_AUTODESTROY &&
@@ -6231,3 +6231,53 @@ bool qemuProcessAutoDestroyActive(virQEMUDriverPtr driver,
     cb = virCloseCallbacksGet(driver->closeCallbacks, vm, NULL);
     return cb == qemuProcessAutoDestroy;
 }
+
+
+int
+qemuProcessRefreshDisks(virQEMUDriverPtr driver,
+                        virDomainObjPtr vm,
+                        qemuDomainAsyncJob asyncJob)
+{
+    qemuDomainObjPrivatePtr priv = vm->privateData;
+    virHashTablePtr table = NULL;
+    int ret = -1;
+    size_t i;
+
+    if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) == 0) {
+        table = qemuMonitorGetBlockInfo(priv->mon);
+        if (qemuDomainObjExitMonitor(driver, vm) < 0)
+            goto cleanup;
+    }
+
+    if (!table)
+        goto cleanup;
+
+    for (i = 0; i < vm->def->ndisks; i++) {
+        virDomainDiskDefPtr disk = vm->def->disks[i];
+        struct qemuDomainDiskInfo *info;
+
+        if (disk->device == VIR_DOMAIN_DISK_DEVICE_DISK ||
+            disk->device == VIR_DOMAIN_DISK_DEVICE_LUN) {
+                 continue;
+        }
+
+        info = qemuMonitorBlockInfoLookup(table, disk->info.alias);
+        if (!info)
+            goto cleanup;
+
+        if (info->tray_open) {
+            if (virDomainDiskGetSource(disk))
+                ignore_value(virDomainDiskSetSource(disk, NULL));
+
+            disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
+        } else {
+            disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
+        }
+    }
+
+    ret = 0;
+
+ cleanup:
+    virHashFree(table);
+    return ret;
+}
index 623e1e765203694d5abfbb3ecfaa35534dc42d72..61d9f56d7fb3e19db36dfc4d86fa0c55406d1c2d 100644 (file)
@@ -192,4 +192,9 @@ int qemuRefreshVirtioChannelState(virQEMUDriverPtr driver,
 int qemuProcessRefreshBalloonState(virQEMUDriverPtr driver,
                                    virDomainObjPtr vm,
                                    int asyncJob);
+
+int qemuProcessRefreshDisks(virQEMUDriverPtr driver,
+                            virDomainObjPtr vm,
+                            qemuDomainAsyncJob asyncJob);
+
 #endif /* __QEMU_PROCESS_H__ */