]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
Add a 'format' arg to qemuMonitorChangeMedia() since JSON will support it
authorDaniel P. Berrange <berrange@redhat.com>
Thu, 26 Nov 2009 13:48:17 +0000 (13:48 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Tue, 8 Dec 2009 13:46:53 +0000 (13:46 +0000)
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()

src/qemu/qemu_driver.c
src/qemu/qemu_monitor.c
src/qemu/qemu_monitor.h
src/qemu/qemu_monitor_text.c
src/qemu/qemu_monitor_text.h

index 2902d3c103880356df6383aa3181be09ce1952d3..dd4daa0aeae76c4085317a2dfcba63f46bb2d030 100644 (file)
@@ -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);
     }
index f3c9022d376526c96e8017bfbe72f08d30f39db4..9e180c20df06ab54cafa1e1baf8f082cb81315eb 100644 (file)
@@ -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);
 }
 
 
index 88d3dd7d9a2422552782a198ebb48f24a7504c72..14198fb8baa4101eb49c4ba3216daf12de2927b5 100644 (file)
@@ -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,
index db155734d5323f88e43bc4135918c3c797aa9287..0d5ad799d2e0e6fae74a985b8eaf912af1d821dc 100644 (file)
@@ -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;
index 6bca07ad0ecccabbbc8bf8784679cdc24fd2539a..bc52ad232ec862c719b0faf3bbe0ad32e4ce0d73 100644 (file)
@@ -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,