]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuMonitorBlockdevAdd: Take double pointer argument
authorPeter Krempa <pkrempa@redhat.com>
Thu, 6 Feb 2020 12:13:32 +0000 (13:13 +0100)
committerPeter Krempa <pkrempa@redhat.com>
Mon, 10 Feb 2020 16:26:27 +0000 (17:26 +0100)
Modify qemuMonitorBlockdevAdd so that it takes a double pointer for the
@props argument so that it's cleared inside the call. This allows
writing cleaner callers.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
Reviewed-by: Daniel Henrique Barboza <danielhb413@gmail.com>
src/qemu/qemu_block.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_json.c
src/qemu/qemu_monitor_json.h

index 0ee10dd7700c0adaa5b017806628503fc6481b04..710ddfd2cf0e823db12c207e1628b23fbc7131da 100644 (file)
@@ -1537,13 +1537,8 @@ static int
 qemuBlockStorageSourceAttachApplyStorage(qemuMonitorPtr mon,
                                          qemuBlockStorageSourceAttachDataPtr data)
 {
-    int rv;
-
     if (data->storageProps) {
-        rv = qemuMonitorBlockdevAdd(mon, data->storageProps);
-        data->storageProps = NULL;
-
-        if (rv < 0)
+        if (qemuMonitorBlockdevAdd(mon, &data->storageProps) < 0)
             return -1;
 
         data->storageAttached = true;
@@ -1570,13 +1565,8 @@ static int
 qemuBlockStorageSourceAttachApplyFormat(qemuMonitorPtr mon,
                                         qemuBlockStorageSourceAttachDataPtr data)
 {
-    int rv;
-
     if (data->formatProps) {
-        rv = qemuMonitorBlockdevAdd(mon, data->formatProps);
-        data->formatProps = NULL;
-
-        if (rv < 0)
+        if (qemuMonitorBlockdevAdd(mon, &data->formatProps) < 0)
             return -1;
 
         data->formatAttached = true;
index ba70d01d47208ed42ecb2a0e8c616c40bb559812..802ad20aa10c0972b484c48d7861ec4ad1ada328 100644 (file)
@@ -4400,23 +4400,19 @@ qemuMonitorBlockdevCreate(qemuMonitorPtr mon,
  * @mon: monitor object
  * @props: JSON object describing the blockdev to add
  *
- * Adds a new block device (BDS) to qemu. Note that @props is always consumed
- * by this function and should not be accessed after calling this function.
+ * Adds a new block device (BDS) to qemu. Note that *@props is consumed
+ * and set to NULL on success.
  */
 int
 qemuMonitorBlockdevAdd(qemuMonitorPtr mon,
-                       virJSONValuePtr props)
+                       virJSONValuePtr *props)
 {
-    VIR_DEBUG("props=%p (node-name=%s)", props,
-              NULLSTR(virJSONValueObjectGetString(props, "node-name")));
+    VIR_DEBUG("props=%p (node-name=%s)", *props,
+              NULLSTR(virJSONValueObjectGetString(*props, "node-name")));
 
-    QEMU_CHECK_MONITOR_GOTO(mon, error);
+    QEMU_CHECK_MONITOR(mon);
 
     return qemuMonitorJSONBlockdevAdd(mon, props);
-
- error:
-    virJSONValueFree(props);
-    return -1;
 }
 
 
index 89197cfe0d11b2500f18f6a35a85b018d35046c3..8cf9e118997313df9c383235c504225fef6f506d 100644 (file)
@@ -1330,7 +1330,7 @@ int qemuMonitorBlockdevCreate(qemuMonitorPtr mon,
                               virJSONValuePtr props);
 
 int qemuMonitorBlockdevAdd(qemuMonitorPtr mon,
-                           virJSONValuePtr props);
+                           virJSONValuePtr *props);
 
 int qemuMonitorBlockdevDel(qemuMonitorPtr mon,
                            const char *nodename);
index bbcb67ddb797a0a16bfabea2ddb6288252c214bc..50d93c0c7edf28231fdb18fbeeb33977a4b89807 100644 (file)
@@ -8821,12 +8821,13 @@ qemuMonitorJSONBlockdevCreate(qemuMonitorPtr mon,
 
 int
 qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
-                           virJSONValuePtr props)
+                           virJSONValuePtr *props)
 {
     g_autoptr(virJSONValue) cmd = NULL;
     g_autoptr(virJSONValue) reply = NULL;
+    virJSONValuePtr pr = g_steal_pointer(props);
 
-    if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-add", props)))
+    if (!(cmd = qemuMonitorJSONMakeCommandInternal("blockdev-add", pr)))
         return -1;
 
     if (qemuMonitorJSONCommand(mon, cmd, &reply) < 0)
index 61f5b0061ded0500df5ee813251fd46207de4809..fd2e09025e121c403ed7baa132316e0681a4291b 100644 (file)
@@ -597,7 +597,7 @@ int qemuMonitorJSONBlockdevCreate(qemuMonitorPtr mon,
     ATTRIBUTE_NONNULL(1);
 
 int qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
-                               virJSONValuePtr props)
+                               virJSONValuePtr *props)
     ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
 
 int qemuMonitorJSONBlockdevDel(qemuMonitorPtr mon,