提交 8c12b20c 编写于 作者: D Daniel P. Berrange

Add a 'format' arg to qemuMonitorChangeMedia() since JSON will support it

The current QEMU disk media change does not support setting the
disk format. The new JSON monitor will support this, so add an
extra parameter to pass this info in

* src/qemu/qemu_driver.c: Pass in disk format when changing media
* src/qemu/qemu_monitor.h, src/qemu/qemu_monitor.c,
  src/qemu/qemu_monitor_text.c, src/qemu/qemu_monitor_text.h:
  Add a 'format' arg to qemuMonitorChangeMedia()
上级 3fa3cff7
......@@ -4737,7 +4737,14 @@ static int qemudDomainChangeEjectableMedia(virConnectPtr conn,
qemuDomainObjPrivatePtr priv = vm->privateData;
qemuDomainObjEnterMonitorWithDriver(driver, vm);
if (newdisk->src) {
ret = qemuMonitorChangeMedia(priv->mon, devname, newdisk->src);
const char *format = NULL;
if (newdisk->type != VIR_DOMAIN_DISK_TYPE_DIR) {
if (newdisk->driverType)
format = newdisk->driverType;
else if (origdisk->driverType)
format = origdisk->driverType;
}
ret = qemuMonitorChangeMedia(priv->mon, devname, newdisk->src, format);
} else {
ret = qemuMonitorEjectMedia(priv->mon, devname);
}
......
......@@ -776,12 +776,13 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon,
int qemuMonitorChangeMedia(qemuMonitorPtr mon,
const char *devname,
const char *newmedia)
const char *newmedia,
const char *format)
{
DEBUG("mon=%p, fd=%d devname=%s newmedia=%s",
mon, mon->fd, devname, newmedia);
DEBUG("mon=%p, fd=%d devname=%s newmedia=%s format=%s",
mon, mon->fd, devname, newmedia, format);
return qemuMonitorTextChangeMedia(mon, devname, newmedia);
return qemuMonitorTextChangeMedia(mon, devname, newmedia, format);
}
......
......@@ -136,7 +136,8 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon,
const char *devname);
int qemuMonitorChangeMedia(qemuMonitorPtr mon,
const char *devname,
const char *newmedia);
const char *newmedia,
const char *format);
int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon,
......
......@@ -693,7 +693,8 @@ cleanup:
int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
const char *devname,
const char *newmedia)
const char *newmedia,
const char *format ATTRIBUTE_UNUSED)
{
char *cmd = NULL;
char *reply = NULL;
......@@ -1016,8 +1017,8 @@ cleanup:
}
int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon,
int background,
const char *unixfile)
int background,
const char *unixfile)
{
char *dest = NULL;
int ret = -1;
......
......@@ -62,7 +62,8 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon,
const char *devname);
int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
const char *devname,
const char *newmedia);
const char *newmedia,
const char *format);
int qemuMonitorTextSaveVirtualMemory(qemuMonitorPtr mon,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册