]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuBlockReopenFormat: Extract @src handling and monitor invocation
authorPeter Krempa <pkrempa@redhat.com>
Mon, 22 Feb 2021 16:55:01 +0000 (17:55 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 26 Jul 2021 18:25:22 +0000 (20:25 +0200)
This will simplify testing of the blockdev-reopen code once it's
enabled.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
src/qemu/qemu_block.c

index 1bcf7fa4f109cf44dc168ca109c40863d4eb81e2..0015a8ee111eaf745ed154ed398c520fbb01467f 100644 (file)
@@ -3286,6 +3286,22 @@ qemuBlockBitmapsHandleCommitFinish(virStorageSource *topsrc,
 }
 
 
+static int
+qemuBlockReopenFormatMon(qemuMonitor *mon,
+                         virStorageSource *src)
+{
+    g_autoptr(virJSONValue) reopenprops = NULL;
+
+    if (!(reopenprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore)))
+        return -1;
+
+    if (qemuMonitorBlockdevReopen(mon, &reopenprops) < 0)
+        return -1;
+
+    return 0;
+}
+
+
 /**
  * qemuBlockReopenFormat:
  * @vm: domain object
@@ -3303,7 +3319,6 @@ qemuBlockReopenFormat(virDomainObj *vm,
 {
     qemuDomainObjPrivate *priv = vm->privateData;
     virQEMUDriver *driver = priv->driver;
-    g_autoptr(virJSONValue) reopenprops = NULL;
     int rc;
 
     /* If we are lacking the object here, qemu might have opened an image with
@@ -3314,13 +3329,10 @@ qemuBlockReopenFormat(virDomainObj *vm,
         return -1;
     }
 
-    if (!(reopenprops = qemuBlockStorageSourceGetBlockdevProps(src, src->backingStore)))
-        return -1;
-
     if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
         return -1;
 
-    rc = qemuMonitorBlockdevReopen(priv->mon, &reopenprops);
+    rc = qemuBlockReopenFormatMon(priv->mon, src);
 
     if (qemuDomainObjExitMonitor(driver, vm) < 0 || rc < 0)
         return -1;