return -1;
}
- return qemuMonitorJSONGetAllBlockStatsInfo(mon, ret_stats, backingChain);
+ if (!(*ret_stats = virHashCreate(10, virHashValueFree)))
+ goto error;
+
+ if (qemuMonitorJSONGetAllBlockStatsInfo(mon, *ret_stats, backingChain) < 0)
+ goto error;
+
+ return 0;
+
+ error:
+ virHashFree(*ret_stats);
+ *ret_stats = NULL;
+ return -1;
}
if (flush_total_times)
*flush_total_times = -1;
- if (qemuMonitorJSONGetAllBlockStatsInfo(mon, &blockstats, false) < 0)
+ if (!(blockstats = virHashCreate(10, virHashValueFree)))
+ goto cleanup;
+
+ if (qemuMonitorJSONGetAllBlockStatsInfo(mon, blockstats, false) < 0)
goto cleanup;
if (!(stats = virHashLookup(blockstats, dev_name))) {
int
qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitorPtr mon,
- virHashTablePtr *ret_stats,
+ virHashTablePtr hash,
bool backingChain)
{
int ret = -1;
virJSONValuePtr cmd;
virJSONValuePtr reply = NULL;
virJSONValuePtr devices;
- virHashTablePtr hash = NULL;
if (!(cmd = qemuMonitorJSONMakeCommand("query-blockstats", NULL)))
return -1;
- if (!(hash = virHashCreate(10, virHashValueFree)))
- goto cleanup;
-
if ((rc = qemuMonitorJSONCommand(mon, cmd, &reply)) < 0)
goto cleanup;
}
- *ret_stats = hash;
- hash = NULL;
ret = 0;
cleanup:
- virHashFree(hash);
virJSONValueFree(cmd);
virJSONValueFree(reply);
return ret;
long long *flush_req,
long long *flush_total_times);
int qemuMonitorJSONGetAllBlockStatsInfo(qemuMonitorPtr mon,
- virHashTablePtr *ret_stats,
+ virHashTablePtr hash,
bool backingChain);
int qemuMonitorJSONBlockStatsUpdateCapacity(qemuMonitorPtr mon,
virHashTablePtr stats,