qemuDomainObjPrivatePtr priv = vm->privateData;
virQEMUDriverPtr driver = priv->driver;
g_autoptr(virHashTable) blockNamedNodeData = NULL;
+ bool supports_flat = virQEMUCapsGet(priv->qemuCaps,
+ QEMU_CAPS_QMP_QUERY_NAMED_BLOCK_NODES_FLAT);
if (qemuDomainObjEnterMonitorAsync(driver, vm, asyncJob) < 0)
return NULL;
- blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon);
+ blockNamedNodeData = qemuMonitorBlockGetNamedNodeData(priv->mon, supports_flat);
if (qemuDomainObjExitMonitor(driver, vm) < 0 || !blockNamedNodeData)
return NULL;
/**
* qemuMonitorBlockGetNamedNodeData:
* @mon: monitor object
+ * @supports_flat: don't query data for backing store
*
* Uses 'query-named-block-nodes' to retrieve information about individual
* storage nodes and returns them in a hash table of qemuBlockNamedNodeDataPtrs
* filled with the data. The hash table keys are node names.
*/
virHashTablePtr
-qemuMonitorBlockGetNamedNodeData(qemuMonitorPtr mon)
+qemuMonitorBlockGetNamedNodeData(qemuMonitorPtr mon,
+ bool supports_flat)
{
QEMU_CHECK_MONITOR_NULL(mon);
+ VIR_DEBUG("supports_flat=%d", supports_flat);
- return qemuMonitorJSONBlockGetNamedNodeData(mon);
+ return qemuMonitorJSONBlockGetNamedNodeData(mon, supports_flat);
}
};
virHashTablePtr
-qemuMonitorBlockGetNamedNodeData(qemuMonitorPtr mon);
+qemuMonitorBlockGetNamedNodeData(qemuMonitorPtr mon,
+ bool supports_flat);
int qemuMonitorBlockResize(qemuMonitorPtr mon,
const char *device,
virHashTablePtr
-qemuMonitorJSONBlockGetNamedNodeData(qemuMonitorPtr mon)
+qemuMonitorJSONBlockGetNamedNodeData(qemuMonitorPtr mon,
+ bool supports_flat)
{
g_autoptr(virJSONValue) nodes = NULL;
- if (!(nodes = qemuMonitorJSONQueryNamedBlockNodes(mon, false)))
+ if (!(nodes = qemuMonitorJSONQueryNamedBlockNodes(mon, supports_flat)))
return NULL;
return qemuMonitorJSONBlockGetNamedNodeDataJSON(nodes);
qemuMonitorJSONBlockGetNamedNodeDataJSON(virJSONValuePtr nodes);
virHashTablePtr
-qemuMonitorJSONBlockGetNamedNodeData(qemuMonitorPtr mon);
+qemuMonitorJSONBlockGetNamedNodeData(qemuMonitorPtr mon,
+ bool supports_flat);
int qemuMonitorJSONBlockResize(qemuMonitorPtr mon,
const char *device,