[PATCH 2/6] qemuBlockReopenFormat: Extract @src handling and monitor invocation

Peter Krempa pkrempa at redhat.com
Fri Jul 23 09:43:54 UTC 2021


This will simplify testing of the blockdev-reopen code once it's
enabled.

Signed-off-by: Peter Krempa <pkrempa at redhat.com>
---
 src/qemu/qemu_block.c | 22 +++++++++++++++++-----
 1 file changed, 17 insertions(+), 5 deletions(-)

diff --git a/src/qemu/qemu_block.c b/src/qemu/qemu_block.c
index 6627d044cd..c96be8b52d 100644
--- a/src/qemu/qemu_block.c
+++ b/src/qemu/qemu_block.c
@@ -3299,6 +3299,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
@@ -3316,7 +3332,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
@@ -3327,13 +3342,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;
-- 
2.31.1




More information about the libvir-list mailing list