]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuProcessRefreshDisks: Extract update of a single disk
authorPeter Krempa <pkrempa@redhat.com>
Wed, 19 Apr 2023 13:57:14 +0000 (15:57 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 24 Apr 2023 10:57:56 +0000 (12:57 +0200)
Extract the logic to update one single disk (without emitting any
events) so that it can be reused when updating the state after a disk
hotplug.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
src/qemu/qemu_process.c
src/qemu/qemu_process.h

index d8d755af506b8245352f6ca5fd3585e64fc9ea27..05437c2161a93254a56b40edabb978dc9c425bfc 100644 (file)
@@ -8673,6 +8673,29 @@ qemuProcessAutoDestroy(virDomainObj *dom,
 }
 
 
+void
+qemuProcessRefreshDiskProps(virDomainDiskDef *disk,
+                            struct qemuDomainDiskInfo *info)
+{
+    qemuDomainDiskPrivate *diskpriv = QEMU_DOMAIN_DISK_PRIVATE(disk);
+
+    if (info->removable) {
+        if (info->empty)
+            virDomainDiskEmptySource(disk);
+
+        if (info->tray) {
+            if (info->tray_open)
+                disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
+            else
+                disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
+        }
+    }
+
+    diskpriv->removable = info->removable;
+    diskpriv->tray = info->tray;
+}
+
+
 int
 qemuProcessRefreshDisks(virDomainObj *vm,
                         virDomainAsyncJob asyncJob)
@@ -8703,21 +8726,7 @@ qemuProcessRefreshDisks(virDomainObj *vm,
         if (!(info = virHashLookup(table, entryname)))
             continue;
 
-        if (info->removable) {
-            if (info->empty)
-                virDomainDiskEmptySource(disk);
-
-            if (info->tray) {
-                if (info->tray_open)
-                    disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
-                else
-                    disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
-            }
-        }
-
-        /* fill in additional data */
-        diskpriv->removable = info->removable;
-        diskpriv->tray = info->tray;
+        qemuProcessRefreshDiskProps(disk, info);
 
         if (diskpriv->tray &&
             old_tray_status != disk->tray_status) {
index b171f0464ca47b6c59ea0d1006c28b583d70e66f..f5c06c29156d3d4cc32cc424f8a5005e51e74008 100644 (file)
@@ -235,3 +235,6 @@ bool qemuProcessRebootAllowed(const virDomainDef *def);
 
 void qemuProcessCleanupMigrationJob(virQEMUDriver *driver,
                                     virDomainObj *vm);
+
+void qemuProcessRefreshDiskProps(virDomainDiskDef *disk,
+                                 struct qemuDomainDiskInfo *info);