]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: monitor: Add handler for blockdev-reopen
authorPeter Krempa <pkrempa@redhat.com>
Thu, 13 Feb 2020 08:00:37 +0000 (09:00 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 16 Mar 2020 16:33:08 +0000 (17:33 +0100)
Introduce the monitor code for using blockdev-reopen.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_json.h

index 017b818f73736a6e6ed43584797e1da77a6df726..4a5bd1d4ab0dc80d65179893b0b737519b190c16 100644 (file)
@@ -4353,6 +4353,19 @@ qemuMonitorBlockdevAdd(qemuMonitorPtr mon,
 }
 
 
+int
+qemuMonitorBlockdevReopen(qemuMonitorPtr mon,
+                          virJSONValuePtr *props)
+{
+    VIR_DEBUG("props=%p (node-name=%s)", *props,
+              NULLSTR(virJSONValueObjectGetString(*props, "node-name")));
+
+    QEMU_CHECK_MONITOR(mon);
+
+    return qemuMonitorJSONBlockdevReopen(mon, props);
+}
+
+
 int
 qemuMonitorBlockdevDel(qemuMonitorPtr mon,
                        const char *nodename)
index be4195e734a221f55b842ae547dc1f8184283b34..2437375327419436f7e09851757e5bd4d36eab06 100644 (file)
@@ -1322,6 +1322,9 @@ int qemuMonitorBlockdevCreate(qemuMonitorPtr mon,
 int qemuMonitorBlockdevAdd(qemuMonitorPtr mon,
                            virJSONValuePtr *props);
 
+int qemuMonitorBlockdevReopen(qemuMonitorPtr mon,
+                              virJSONValuePtr *props);
+
 int qemuMonitorBlockdevDel(qemuMonitorPtr mon,
                            const char *nodename);
 
index 8e1e81ee069f69fa030f57bcb8acceb859932b04..8ac8291d0aef1529485da23719908bea58da9cfc 100644 (file)
@@ -8815,6 +8815,27 @@ qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
 }
 
 
+int
+qemuMonitorJSONBlockdevReopen(qemuMonitorPtr mon,
+                              virJSONValuePtr *props)
+{
+    g_autoptr(virJSONValue) cmd = NULL;
+    g_autoptr(virJSONValue) reply = NULL;
+    virJSONValuePtr pr = g_steal_pointer(props);
+
+    if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-reopen", pr)))
+        return -1;
+
+    if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
+        return -1;
+
+    if (qemuMonitorJSONCheckError(cmd, reply) < 0)
+        return -1;
+
+    return 0;
+}
+
+
 int
 qemuMonitorJSONBlockdevDel(qemuMonitorPtr mon,
                            const char *nodename)
index ed48600b82126177e0b5b6396477636b1951656e..5b3bb295eb7993d0b4c5c80d949924a68bb3a901 100644 (file)
@@ -602,6 +602,10 @@ int qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
                                virJSONValuePtr *props)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
+int qemuMonitorJSONBlockdevReopen(qemuMonitorPtr mon,
+                                  virJSONValuePtr *props)
+    ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
+
 int qemuMonitorJSONBlockdevDel(qemuMonitorPtr mon,
                                const char *nodename)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);