]> git.ipfire.org Git - thirdparty/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)
committerCole Robinson <crobinso@redhat.com>
Thu, 23 Jun 2016 19:50:59 +0000 (15:50 -0400)
Move it to a more sane place since it's refreshing data about disks.

(cherry picked from commit d9bee413ade28e1e43ef222c7aaaa3c6d6fda0f1)

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 b8ab068bc459a2a4140f22e96938521de1476c77..a58dd57a66b04f7453badbfc3d62ab5f810dc4b6 100644 (file)
@@ -267,54 +267,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 4140da353969267b8062f2a9f1af93e1b95a444d..fe7c563930a37c1b5f492266482ed1eebbc54129 100644 (file)
@@ -34,9 +34,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 8d2ca3b6d9bad31ff8f7b5e080e102fbcdd8db43..6808a9cbc818c79b7bc977e285166b4018825a2f 100644 (file)
@@ -3273,7 +3273,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 2698178e3d247c8c4627b7c1aec221c51cd62d6e..f13d902c3a93d5672e966804c569fedd8f0feecd 100644 (file)
@@ -3603,7 +3603,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)
@@ -5457,8 +5457,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 &&
@@ -6380,3 +6380,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 d5f50f2a674161cc0c2dd9c5720f045eb879da9b..7c6727450bb1103de6ecefd3f2141f625b96b4d0 100644 (file)
@@ -193,4 +193,9 @@ int qemuProcessSetupIOThread(virDomainObjPtr vm,
 
 int qemuRefreshVirtioChannelState(virQEMUDriverPtr driver,
                                   virDomainObjPtr vm);
+
+int qemuProcessRefreshDisks(virQEMUDriverPtr driver,
+                            virDomainObjPtr vm,
+                            qemuDomainAsyncJob asyncJob);
+
 #endif /* __QEMU_PROCESS_H__ */