const char *bitmap)
{
qemuDomainObjPrivatePtr priv = vm->privateData;
- const char *exportsrc = drivealias;
if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCKDEV)) {
- exportsrc = src->nodeformat;
+ if (virQEMUCapsGet(priv->qemuCaps, QEMU_CAPS_BLOCK_EXPORT_ADD)) {
+ g_autoptr(virJSONValue) nbdprops = NULL;
+
+ if (!(nbdprops = qemuBlockExportGetNBDProps(src->nodeformat,
+ exportname,
+ writable,
+ bitmap)))
+ return -1;
+
+ return qemuMonitorBlockExportAdd(priv->mon, &nbdprops);
+ } else {
+ return qemuMonitorNBDServerAdd(priv->mon, src->nodeformat,
+ exportname, writable, bitmap);
+ }
} else {
/* older qemu versions didn't support configuring the exportname and
* took the 'drivealias' as the export name */
- exportname = NULL;
+ return qemuMonitorNBDServerAdd(priv->mon, drivealias, NULL, writable, NULL);
}
- return qemuMonitorNBDServerAdd(priv->mon, exportsrc, exportname, writable, bitmap);
+ return 0;
}
DO_TEST_GEN(qemuMonitorJSONDrivePivot);
DO_TEST_GEN(qemuMonitorJSONScreendump);
DO_TEST_GEN(qemuMonitorJSONOpenGraphics);
- DO_TEST_GEN_DEPRECATED(qemuMonitorJSONNBDServerAdd, false);
+ DO_TEST_GEN_DEPRECATED(qemuMonitorJSONNBDServerAdd, true);
DO_TEST_GEN(qemuMonitorJSONDetachCharDev);
DO_TEST_GEN(qemuMonitorJSONBlockdevTrayOpen);
DO_TEST_GEN(qemuMonitorJSONBlockdevTrayClose);