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;
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;
* @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;
}
virJSONValuePtr props);
int qemuMonitorBlockdevAdd(qemuMonitorPtr mon,
- virJSONValuePtr props);
+ virJSONValuePtr *props);
int qemuMonitorBlockdevDel(qemuMonitorPtr mon,
const char *nodename);
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)
ATTRIBUTE_NONNULL(1);
int qemuMonitorJSONBlockdevAdd(qemuMonitorPtr mon,
- virJSONValuePtr props)
+ virJSONValuePtr *props)
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2);
int qemuMonitorJSONBlockdevDel(qemuMonitorPtr mon,