提交 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, ...@@ -4737,7 +4737,14 @@ static int qemudDomainChangeEjectableMedia(virConnectPtr conn,
qemuDomainObjPrivatePtr priv = vm->privateData; qemuDomainObjPrivatePtr priv = vm->privateData;
qemuDomainObjEnterMonitorWithDriver(driver, vm); qemuDomainObjEnterMonitorWithDriver(driver, vm);
if (newdisk->src) { 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 { } else {
ret = qemuMonitorEjectMedia(priv->mon, devname); ret = qemuMonitorEjectMedia(priv->mon, devname);
} }
......
...@@ -776,12 +776,13 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon, ...@@ -776,12 +776,13 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon,
int qemuMonitorChangeMedia(qemuMonitorPtr mon, int qemuMonitorChangeMedia(qemuMonitorPtr mon,
const char *devname, const char *devname,
const char *newmedia) const char *newmedia,
const char *format)
{ {
DEBUG("mon=%p, fd=%d devname=%s newmedia=%s", DEBUG("mon=%p, fd=%d devname=%s newmedia=%s format=%s",
mon, mon->fd, devname, newmedia); 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, ...@@ -136,7 +136,8 @@ int qemuMonitorEjectMedia(qemuMonitorPtr mon,
const char *devname); const char *devname);
int qemuMonitorChangeMedia(qemuMonitorPtr mon, int qemuMonitorChangeMedia(qemuMonitorPtr mon,
const char *devname, const char *devname,
const char *newmedia); const char *newmedia,
const char *format);
int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon, int qemuMonitorSaveVirtualMemory(qemuMonitorPtr mon,
......
...@@ -693,7 +693,8 @@ cleanup: ...@@ -693,7 +693,8 @@ cleanup:
int qemuMonitorTextChangeMedia(qemuMonitorPtr mon, int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
const char *devname, const char *devname,
const char *newmedia) const char *newmedia,
const char *format ATTRIBUTE_UNUSED)
{ {
char *cmd = NULL; char *cmd = NULL;
char *reply = NULL; char *reply = NULL;
...@@ -1016,8 +1017,8 @@ cleanup: ...@@ -1016,8 +1017,8 @@ cleanup:
} }
int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon, int qemuMonitorTextMigrateToUnix(qemuMonitorPtr mon,
int background, int background,
const char *unixfile) const char *unixfile)
{ {
char *dest = NULL; char *dest = NULL;
int ret = -1; int ret = -1;
......
...@@ -62,7 +62,8 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon, ...@@ -62,7 +62,8 @@ int qemuMonitorTextEjectMedia(qemuMonitorPtr mon,
const char *devname); const char *devname);
int qemuMonitorTextChangeMedia(qemuMonitorPtr mon, int qemuMonitorTextChangeMedia(qemuMonitorPtr mon,
const char *devname, const char *devname,
const char *newmedia); const char *newmedia,
const char *format);
int qemuMonitorTextSaveVirtualMemory(qemuMonitorPtr mon, int qemuMonitorTextSaveVirtualMemory(qemuMonitorPtr mon,
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册