]> git.proxmox.com Git - pve-qemu-kvm.git/commitdiff
update to qemu 2.2.0-rc2
authorDietmar Maurer <dietmar@proxmox.com>
Thu, 20 Nov 2014 08:23:17 +0000 (09:23 +0100)
committerDietmar Maurer <dietmar@proxmox.com>
Thu, 20 Nov 2014 08:24:04 +0000 (09:24 +0100)
26 files changed:
Makefile
debian/changelog
debian/patches/adjust-path.diff
debian/patches/backup-add-dir-format.patch
debian/patches/backup-add-pve-monitor-commands.patch
debian/patches/backup-add-vma-binary.patch
debian/patches/backup-add-vma-verify-command.patch
debian/patches/backup-do-not-return-errors-in-dump-callback.patch
debian/patches/backup-modify-job-api.patch
debian/patches/backup-vma-add-dump-config.patch
debian/patches/backup-vma-allow-empty-backups.patch
debian/patches/backup-vma-correctly-propagate-error.patch
debian/patches/backup-vma-remove-async-queue.patch
debian/patches/disable-efi-enable-pxe-roms.patch
debian/patches/enable-kvm-by-default.patch
debian/patches/fairsched.diff
debian/patches/fix-qemu-img-snapshot-removal.patch
debian/patches/internal-snapshot-async.patch
debian/patches/keymap.diff
debian/patches/modify-query-machines.patch
debian/patches/modify-query-spice.patch
debian/patches/pve-auth.patch
debian/patches/set-cpu-model-to-kvm64.patch
debian/patches/spice-use-pve-certs.patch
debian/patches/virtio-balloon-fix-query.patch
qemu-kvm-src.tar.gz

index 8c1b6705f4129472c187aef8192f1a5c758e5d8d..622056a147cb2e1971d86bb98e3f56ae20f197c0 100644 (file)
--- a/Makefile
+++ b/Makefile
@@ -1,8 +1,8 @@
 RELEASE=3.3
 
 # also update debian/changelog
-KVMVER=2.1
-KVMPKGREL=10
+KVMVER=2.2
+KVMPKGREL=1
 
 KVMPACKAGE=pve-qemu-kvm
 KVMDIR=qemu-kvm
@@ -18,8 +18,9 @@ all: ${KVM_DEB} ${KVMSRC}
 .PHONY: download
 download:
        rm -rf ${KVMDIR} ${KVMSRC}
-       git clone git://git.qemu-project.org/qemu.git -b stable-2.1 ${KVMDIR} 
-       cd ${KVMDIR}; git checkout v2.1.2
+       #git clone git://git.qemu-project.org/qemu.git -b stable-2.1 ${KVMDIR} 
+       git clone git://git.qemu-project.org/qemu.git ${KVMDIR} 
+       cd ${KVMDIR}; git checkout v2.2.0-rc2
        tar czf ${KVMSRC} --exclude CVS --exclude .git --exclude .svn ${KVMDIR}
 
 ${KVM_DEB} kvm: ${KVMSRC}
index 9895ca29cb5839e6837ff1e4e612cd78641d1f17..4c638da7ee6f56b02c68de21fdb012eadea2482c 100644 (file)
@@ -1,3 +1,9 @@
+pve-qemu-kvm (2.2-1) unstable; urgency=low
+
+  * update to qemu v2.2.0-rc2
+
+ -- Proxmox Support Team <support@proxmox.com>  Thu, 20 Nov 2014 07:56:27 +0100
+
 pve-qemu-kvm (2.1-10) unstable; urgency=low
 
   * enable support for write_zeroes and discard for images on xfs filesystem
index 4420f6b0c7202f858d5c7b36a0d2aede6065af02..ea72b60d1436a4c2f89f93946bbe3777322363fa 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/include/net/net.h
 ===================================================================
---- new.orig/include/net/net.h 2014-07-16 11:53:56.000000000 +0200
-+++ new/include/net/net.h      2014-07-16 12:01:25.000000000 +0200
-@@ -196,8 +196,9 @@
+--- new.orig/include/net/net.h 2014-11-20 06:45:06.000000000 +0100
++++ new/include/net/net.h      2014-11-20 06:47:47.000000000 +0100
+@@ -195,8 +195,9 @@
  int net_hub_id_for_client(NetClientState *nc, int *id);
  NetClientState *net_hub_port_find(int hub_id);
  
@@ -14,16 +14,3 @@ Index: new/include/net/net.h
  #define DEFAULT_BRIDGE_HELPER CONFIG_QEMU_HELPERDIR "/qemu-bridge-helper"
  #define DEFAULT_BRIDGE_INTERFACE "br0"
  
-Index: new/net/tap_int.h
-===================================================================
---- new.orig/net/tap_int.h     2014-07-16 11:53:56.000000000 +0200
-+++ new/net/tap_int.h  2014-07-16 12:01:25.000000000 +0200
-@@ -29,8 +29,6 @@
- #include "qemu-common.h"
- #include "qapi-types.h"
--#define DEFAULT_NETWORK_SCRIPT "/etc/qemu-ifup"
--#define DEFAULT_NETWORK_DOWN_SCRIPT "/etc/qemu-ifdown"
- int tap_open(char *ifname, int ifname_size, int *vnet_hdr,
-              int vnet_hdr_required, int mq_required);
index 8922ca414c1d70dd40f7b3882a5d3c2864005b5e..ea8770191b4986dee0a685d1822b8ce1c5467282 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-07-16 12:01:34.000000000 +0200
-+++ new/qapi-schema.json       2014-07-16 12:01:35.000000000 +0200
-@@ -388,7 +388,7 @@
+--- new.orig/qapi-schema.json  2014-11-20 08:59:29.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 09:03:23.000000000 +0100
+@@ -391,7 +391,7 @@
  # @vma: Proxmox vma backup format
  ##
  { 'enum': 'BackupFormat',
@@ -13,9 +13,9 @@ Index: new/qapi-schema.json
  # @backup:
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 12:01:34.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:35.000000000 +0200
-@@ -1895,6 +1895,8 @@
+--- new.orig/blockdev.c        2014-11-20 08:59:29.000000000 +0100
++++ new/blockdev.c     2014-11-20 09:04:05.000000000 +0100
+@@ -1979,6 +1979,8 @@
      uint8_t dev_id;
      //bool started;
      bool completed;
@@ -24,7 +24,7 @@ Index: new/blockdev.c
  } PVEBackupDevInfo;
  
  static void pvebackup_run_next_job(void);
-@@ -1963,8 +1965,6 @@
+@@ -2047,8 +2049,6 @@
  {
      PVEBackupDevInfo *di = opaque;
  
@@ -33,7 +33,7 @@ Index: new/blockdev.c
      di->completed = true;
  
      if (ret < 0 && !backup_state.error) {
-@@ -1975,8 +1975,11 @@
+@@ -2059,8 +2059,11 @@
      BlockDriverState *bs = di->bs;
  
      di->bs = NULL;
@@ -46,7 +46,7 @@ Index: new/blockdev.c
  
      block_job_cb(bs, ret);
  
-@@ -2054,6 +2057,7 @@
+@@ -2138,6 +2141,7 @@
                      bool has_speed, int64_t speed, Error **errp)
  {
      BlockDriverState *bs;
@@ -54,7 +54,7 @@ Index: new/blockdev.c
      Error *local_err = NULL;
      uuid_t uuid;
      VmaWriter *vmaw = NULL;
-@@ -2070,11 +2074,6 @@
+@@ -2154,11 +2158,6 @@
      /* Todo: try to auto-detect format based on file name */
      format = has_format ? format : BACKUP_FORMAT_VMA;
  
@@ -66,7 +66,7 @@ Index: new/blockdev.c
      if (has_devlist) {
          devs = g_strsplit_set(devlist, ",;:", -1);
  
-@@ -2141,27 +2140,63 @@
+@@ -2225,27 +2224,63 @@
  
      uuid_generate(uuid);
  
@@ -133,7 +133,7 @@ Index: new/blockdev.c
 +                goto err;
 +            }
 +
-+            di->target = bdrv_new("", &error_abort);
++            di->target = bdrv_new();
 +            if (bdrv_open(&di->target, di->targetfile, NULL, NULL, flags, NULL, &local_err) < 0) {
 +                bdrv_unref(di->target);
 +                error_propagate(errp, local_err);
@@ -146,7 +146,7 @@ Index: new/blockdev.c
      }
  
      /* add configuration file to archive */
-@@ -2174,12 +2209,27 @@
+@@ -2258,12 +2293,27 @@
              goto err;
          }
  
@@ -179,7 +179,7 @@ Index: new/blockdev.c
          g_free(cdata);
      }
  
-@@ -2219,10 +2269,11 @@
+@@ -2303,10 +2353,11 @@
          PVEBackupDevInfo *di = (PVEBackupDevInfo *)l->data;
          l = g_list_next(l);
  
@@ -192,7 +192,7 @@ Index: new/blockdev.c
          if (local_err != NULL) {
              error_setg(&backup_state.error, "backup_job_create failed");
              pvebackup_cancel(NULL);
-@@ -2239,8 +2290,17 @@
+@@ -2323,8 +2374,17 @@
  
      l = di_list;
      while (l) {
@@ -211,7 +211,7 @@ Index: new/blockdev.c
      }
      g_list_free(di_list);
  
-@@ -2254,6 +2314,10 @@
+@@ -2338,6 +2398,10 @@
          unlink(backup_file);
      }
  
@@ -224,8 +224,8 @@ Index: new/blockdev.c
  
 Index: new/hmp-commands.hx
 ===================================================================
---- new.orig/hmp-commands.hx   2014-07-16 12:01:34.000000000 +0200
-+++ new/hmp-commands.hx        2014-07-16 12:01:35.000000000 +0200
+--- new.orig/hmp-commands.hx   2014-11-20 08:59:29.000000000 +0100
++++ new/hmp-commands.hx        2014-11-20 09:03:23.000000000 +0100
 @@ -90,9 +90,11 @@
  
     {
@@ -243,9 +243,9 @@ Index: new/hmp-commands.hx
  
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2014-07-16 12:01:34.000000000 +0200
-+++ new/hmp.c  2014-07-16 12:01:35.000000000 +0200
-@@ -1262,11 +1262,13 @@
+--- new.orig/hmp.c     2014-11-20 08:59:29.000000000 +0100
++++ new/hmp.c  2014-11-20 09:03:23.000000000 +0100
+@@ -1264,11 +1264,13 @@
  {
      Error *error = NULL;
  
index 4bb528a3204a73f4ae6c96cf1ad4121eecf2ee32..6a2cd61be326cc87f9f9df4151bffe93f68a519d 100644 (file)
@@ -1,24 +1,16 @@
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 12:01:34.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:34.000000000 +0200
-@@ -44,6 +44,7 @@
+--- new.orig/blockdev.c        2014-11-20 07:36:12.000000000 +0100
++++ new/blockdev.c     2014-11-20 07:47:31.000000000 +0100
+@@ -46,6 +46,7 @@
  #include "qmp-commands.h"
  #include "trace.h"
  #include "sysemu/arch_init.h"
 +#include "vma.h"
  
- static QTAILQ_HEAD(drivelist, DriveInfo) drives = QTAILQ_HEAD_INITIALIZER(drives);
-@@ -1546,7 +1547,6 @@
-     }
- }
--
- static void eject_device(BlockDriverState *bs, int force, Error **errp)
- {
-     if (bdrv_op_is_blocked(bs, BLOCK_OP_TYPE_EJECT, errp)) {
-@@ -1871,6 +1871,437 @@
+ static const char *const if_name[IF_COUNT] = {
+     [IF_NONE] = "none",
+@@ -1954,6 +1955,437 @@
      bdrv_put_ref_bh_schedule(bs);
  }
  
@@ -458,8 +450,8 @@ Index: new/blockdev.c
                        bool has_backing_file, const char *backing_file,
 Index: new/hmp-commands.hx
 ===================================================================
---- new.orig/hmp-commands.hx   2014-07-16 11:53:55.000000000 +0200
-+++ new/hmp-commands.hx        2014-07-16 12:01:34.000000000 +0200
+--- new.orig/hmp-commands.hx   2014-11-20 06:45:05.000000000 +0100
++++ new/hmp-commands.hx        2014-11-20 07:47:31.000000000 +0100
 @@ -88,6 +88,35 @@
  Copy data from a backing file into a block device.
  ETEXI
@@ -496,7 +488,7 @@ Index: new/hmp-commands.hx
      {
          .name       = "block_job_set_speed",
          .args_type  = "device:B,speed:o",
-@@ -1764,6 +1793,8 @@
+@@ -1760,6 +1789,8 @@
  show CPU statistics
  @item info usernet
  show user network stack connection states
@@ -507,8 +499,8 @@ Index: new/hmp-commands.hx
  @item info migrate_capabilities
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2014-07-16 12:01:29.000000000 +0200
-+++ new/hmp.c  2014-07-16 12:01:34.000000000 +0200
+--- new.orig/hmp.c     2014-11-20 07:26:23.000000000 +0100
++++ new/hmp.c  2014-11-20 07:47:31.000000000 +0100
 @@ -137,6 +137,44 @@
      qapi_free_MouseInfoList(mice_list);
  }
@@ -554,7 +546,7 @@ Index: new/hmp.c
  void hmp_info_migrate(Monitor *mon, const QDict *qdict)
  {
      MigrationInfo *info;
-@@ -1210,6 +1248,29 @@
+@@ -1212,6 +1250,29 @@
  
      hmp_handle_error(mon, &error);
  }
@@ -586,8 +578,8 @@ Index: new/hmp.c
  {
 Index: new/hmp.h
 ===================================================================
---- new.orig/hmp.h     2014-07-16 11:53:55.000000000 +0200
-+++ new/hmp.h  2014-07-16 12:01:34.000000000 +0200
+--- new.orig/hmp.h     2014-11-20 06:45:05.000000000 +0100
++++ new/hmp.h  2014-11-20 07:47:31.000000000 +0100
 @@ -29,6 +29,7 @@
  void hmp_info_migrate(Monitor *mon, const QDict *qdict);
  void hmp_info_migrate_capabilities(Monitor *mon, const QDict *qdict);
@@ -607,8 +599,8 @@ Index: new/hmp.h
  void hmp_block_job_pause(Monitor *mon, const QDict *qdict);
 Index: new/monitor.c
 ===================================================================
---- new.orig/monitor.c 2014-07-16 11:53:55.000000000 +0200
-+++ new/monitor.c      2014-07-16 12:01:34.000000000 +0200
+--- new.orig/monitor.c 2014-11-20 06:45:06.000000000 +0100
++++ new/monitor.c      2014-11-20 07:47:31.000000000 +0100
 @@ -2848,6 +2848,13 @@
      },
  #endif
@@ -625,9 +617,9 @@ Index: new/monitor.c
          .params     = "",
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-07-16 12:01:31.000000000 +0200
-+++ new/qapi-schema.json       2014-07-16 12:01:34.000000000 +0200
-@@ -349,6 +349,95 @@
+--- new.orig/qapi-schema.json  2014-11-20 07:26:43.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 07:47:31.000000000 +0100
+@@ -352,6 +352,95 @@
  ##
  { 'command': 'query-events', 'returns': ['EventInfo'] }
  
@@ -725,9 +717,9 @@ Index: new/qapi-schema.json
  #
 Index: new/qmp-commands.hx
 ===================================================================
---- new.orig/qmp-commands.hx   2014-07-16 12:01:29.000000000 +0200
-+++ new/qmp-commands.hx        2014-07-16 12:01:34.000000000 +0200
-@@ -1098,6 +1098,24 @@
+--- new.orig/qmp-commands.hx   2014-11-20 07:26:23.000000000 +0100
++++ new/qmp-commands.hx        2014-11-20 07:47:31.000000000 +0100
+@@ -1097,6 +1097,24 @@
  EQMP
  
      {
index d30e59a16ea9d67fdaafa6f2e48b7e099672aa08..366af8478179f373b08ebece97a8c80a8b2eba87 100644 (file)
@@ -24,9 +24,9 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 
 Index: new/Makefile
 ===================================================================
---- new.orig/Makefile  2014-07-16 11:53:56.000000000 +0200
-+++ new/Makefile       2014-07-16 12:01:32.000000000 +0200
-@@ -146,7 +146,7 @@
+--- new.orig/Makefile  2014-11-20 08:12:54.000000000 +0100
++++ new/Makefile       2014-11-20 08:15:12.000000000 +0100
+@@ -152,7 +152,7 @@
  include $(SRC_PATH)/libcacard/Makefile
  endif
  
@@ -35,7 +35,7 @@ Index: new/Makefile
  
  config-host.h: config-host.h-timestamp
  config-host.h-timestamp: config-host.mak
-@@ -214,6 +214,7 @@
+@@ -220,6 +220,7 @@
  qemu-img$(EXESUF): qemu-img.o $(block-obj-y) libqemuutil.a libqemustub.a
  qemu-nbd$(EXESUF): qemu-nbd.o $(block-obj-y) libqemuutil.a libqemustub.a
  qemu-io$(EXESUF): qemu-io.o $(block-obj-y) libqemuutil.a libqemustub.a
@@ -46,7 +46,7 @@ Index: new/Makefile
 Index: new/vma-reader.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vma-reader.c   2014-07-16 12:01:32.000000000 +0200
++++ new/vma-reader.c   2014-11-20 08:15:12.000000000 +0100
 @@ -0,0 +1,799 @@
 +/*
 + * VMA: Virtual Machine Archive
@@ -850,7 +850,7 @@ Index: new/vma-reader.c
 Index: new/vma-writer.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vma-writer.c   2014-07-16 12:01:32.000000000 +0200
++++ new/vma-writer.c   2014-11-20 08:31:06.000000000 +0100
 @@ -0,0 +1,876 @@
 +/*
 + * VMA: Virtual Machine Archive
@@ -1663,7 +1663,7 @@ Index: new/vma-writer.c
 +    /* this should not happen - just to be sure */
 +    while (!qemu_co_queue_empty(&vmaw->wqueue)) {
 +        DPRINTF("vma_writer_close wait\n");
-+        co_sleep_ns(QEMU_CLOCK_REALTIME, 1000000);
++        co_aio_sleep_ns(qemu_get_aio_context(), QEMU_CLOCK_REALTIME, 1000000);
 +    }
 +
 +    if (vmaw->cmd) {
@@ -1731,8 +1731,8 @@ Index: new/vma-writer.c
 Index: new/vma.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vma.c  2014-07-16 12:01:32.000000000 +0200
-@@ -0,0 +1,583 @@
++++ new/vma.c  2014-11-20 08:47:23.000000000 +0100
+@@ -0,0 +1,582 @@
 +/*
 + * VMA: Virtual Machine Archive
 + *
@@ -2031,7 +2031,7 @@ Index: new/vma.c
 +                write_zero = false;
 +            }
 +
-+            BlockDriverState *bs = bdrv_new(di->devname, &errp);
++            BlockDriverState *bs = bdrv_new();
 +            if (errp || bdrv_open(&bs, devfn, NULL, NULL, flags, NULL, &errp)) {
 +                g_error("can't open file %s - %s", devfn,
 +                        error_get_pretty(errp));
@@ -2199,12 +2199,8 @@ Index: new/vma.c
 +
 +        BlockDriver *drv = NULL;
 +        Error *errp = NULL;
-+        BlockDriverState *bs = bdrv_new(devname, &errp);
-+        
-+        if (errp) {
-+            g_error("bdrv_new '%s' failed - %s", devname, error_get_pretty(errp));
-+        }
-+ 
++        BlockDriverState *bs = bdrv_new();
++
 +        res = bdrv_open(&bs, path, NULL, NULL, BDRV_O_CACHE_WB , drv, &errp);
 +        if (res < 0) {
 +            unlink(archivename);
@@ -2290,10 +2286,13 @@ Index: new/vma.c
 +int main(int argc, char **argv)
 +{
 +    const char *cmdname;
++    Error *main_loop_err = NULL;
 +
 +    error_set_progname(argv[0]);
 +
-+    qemu_init_main_loop();
++    if (qemu_init_main_loop(&main_loop_err)) {
++        g_error("%s", error_get_pretty(main_loop_err));
++    }
 +
 +    bdrv_init();
 +
@@ -2319,7 +2318,7 @@ Index: new/vma.c
 Index: new/vma.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vma.h  2014-07-16 12:01:32.000000000 +0200
++++ new/vma.h  2014-11-20 08:15:12.000000000 +0100
 @@ -0,0 +1,146 @@
 +/*
 + * VMA: Virtual Machine Archive
@@ -2469,11 +2468,11 @@ Index: new/vma.h
 +#endif /* BACKUP_VMA_H */
 Index: new/Makefile.objs
 ===================================================================
---- new.orig/Makefile.objs     2014-07-16 11:53:56.000000000 +0200
-+++ new/Makefile.objs  2014-07-16 12:01:32.000000000 +0200
-@@ -14,6 +14,7 @@
+--- new.orig/Makefile.objs     2014-11-20 08:12:54.000000000 +0100
++++ new/Makefile.objs  2014-11-20 08:15:12.000000000 +0100
+@@ -13,6 +13,7 @@
+ block-obj-$(CONFIG_WIN32) += aio-win32.o
  block-obj-y += block/
- block-obj-y += qapi-types.o qapi-visit.o qapi-event.o
  block-obj-y += qemu-io-cmds.o
 +block-obj-y += vma-writer.o
  
index 42ceb6cf9165f1e696d6d2224faf58fcb05a2145..1f042813a84c48578ffdb047726004968210c601 100644 (file)
@@ -20,8 +20,8 @@ Signed-off-by: Dietmar Maurer <dietmar@proxmox.com>
 
 Index: new/vma-reader.c
 ===================================================================
---- new.orig/vma-reader.c      2014-07-16 12:01:32.000000000 +0200
-+++ new/vma-reader.c   2014-07-16 12:01:32.000000000 +0200
+--- new.orig/vma-reader.c      2014-11-20 08:15:12.000000000 +0100
++++ new/vma-reader.c   2014-11-20 08:47:30.000000000 +0100
 @@ -53,6 +53,8 @@
      time_t start_time;
      int64_t cluster_count;
@@ -227,8 +227,8 @@ Index: new/vma-reader.c
 +
 Index: new/vma.c
 ===================================================================
---- new.orig/vma.c     2014-07-16 12:01:32.000000000 +0200
-+++ new/vma.c  2014-07-16 12:01:32.000000000 +0200
+--- new.orig/vma.c     2014-11-20 08:47:23.000000000 +0100
++++ new/vma.c  2014-11-20 08:47:30.000000000 +0100
 @@ -34,6 +34,7 @@
          "vma list <filename>\n"
          "vma create <filename> [-c config] <archive> pathname ...\n"
@@ -296,7 +296,7 @@ Index: new/vma.c
  typedef struct BackupJob {
      BlockDriverState *bs;
      int64_t len;
-@@ -576,6 +629,8 @@
+@@ -575,6 +628,8 @@
          return create_archive(argc, argv);
      } else if (!strcmp(cmdname, "extract")) {
          return extract_content(argc, argv);
@@ -307,8 +307,8 @@ Index: new/vma.c
      help();
 Index: new/vma.h
 ===================================================================
---- new.orig/vma.h     2014-07-16 12:01:32.000000000 +0200
-+++ new/vma.h  2014-07-16 12:01:32.000000000 +0200
+--- new.orig/vma.h     2014-11-20 08:15:12.000000000 +0100
++++ new/vma.h  2014-11-20 08:47:30.000000000 +0100
 @@ -142,5 +142,6 @@
                             Error **errp);
  int vma_reader_restore(VmaReader *vmar, int vmstate_fd, bool verbose,
index 3c35fa21e9b9e8f1f91ef428755fa20176e3e9ec..d217968027dfc70e460af570d180780196745b43 100644 (file)
@@ -6,9 +6,9 @@ We simply report success and cancel the backup job instead.
 
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 12:01:35.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:35.000000000 +0200
-@@ -1907,6 +1907,11 @@
+--- new.orig/blockdev.c        2014-11-20 07:49:05.000000000 +0100
++++ new/blockdev.c     2014-11-20 07:49:14.000000000 +0100
+@@ -1991,6 +1991,11 @@
  {
      PVEBackupDevInfo *di = opaque;
  
@@ -20,7 +20,7 @@ Index: new/blockdev.c
      if (sector_num & 0x7f) {
          if (!backup_state.error) {
              error_setg(&backup_state.error,
-@@ -1917,7 +1922,6 @@
+@@ -2001,7 +2006,6 @@
      }
  
      int64_t cluster_num = sector_num >> 7;
@@ -28,7 +28,7 @@ Index: new/blockdev.c
  
      int ret = -1;
  
-@@ -1925,17 +1929,27 @@
+@@ -2009,17 +2013,27 @@
          size_t zero_bytes = 0;
          ret = vma_writer_write(backup_state.vmaw, di->dev_id, cluster_num,
                                 buf, &zero_bytes);
@@ -60,7 +60,7 @@ Index: new/blockdev.c
  }
  
  static void pvebackup_cleanup(void)
-@@ -2007,7 +2021,7 @@
+@@ -2091,7 +2105,7 @@
              BlockJob *job = di->bs->job;
              if (job) {
                  if (!di->completed) {
index ff854a49a1415f138e530bf7b8fd7c7981d6f121..53aa7be58b5ff6e3da55b00ba77b79cb062b4ff0 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/block/backup.c
 ===================================================================
---- new.orig/block/backup.c    2014-07-16 11:53:56.000000000 +0200
-+++ new/block/backup.c 2014-07-16 12:01:34.000000000 +0200
+--- new.orig/block/backup.c    2014-11-20 07:55:31.000000000 +0100
++++ new/block/backup.c 2014-11-20 08:56:23.000000000 +0100
 @@ -39,6 +39,7 @@
      BlockDriverState *target;
      MirrorSyncMode sync_mode;
@@ -62,7 +62,7 @@ Index: new/block/backup.c
      }
  }
  
-@@ -248,9 +260,11 @@
+@@ -264,9 +276,11 @@
  
      job->bitmap = hbitmap_alloc(end, 0);
  
@@ -77,25 +77,23 @@ Index: new/block/backup.c
  
      bdrv_add_before_write_notifier(bs, &before_write);
  
-@@ -343,8 +357,10 @@
+@@ -359,7 +373,9 @@
  
      hbitmap_free(job->bitmap);
  
 -    bdrv_iostatus_disable(target);
--    bdrv_unref(target);
 +    if (target) {
 +        bdrv_iostatus_disable(target);
-+        bdrv_unref(target);
 +    }
  
-     block_job_completed(&job->common, ret);
- }
-@@ -353,13 +369,15 @@
+     data = g_malloc(sizeof(*data));
+     data->ret = ret;
+@@ -370,13 +386,15 @@
                    int64_t speed, MirrorSyncMode sync_mode,
                    BlockdevOnError on_source_error,
                    BlockdevOnError on_target_error,
 +                  BackupDumpFunc *dump_cb,
-                   BlockDriverCompletionFunc *cb, void *opaque,
+                   BlockCompletionFunc *cb, void *opaque,
 +                  bool paused,
                    Error **errp)
  {
@@ -107,7 +105,7 @@ Index: new/block/backup.c
      assert(cb);
  
      if ((on_source_error == BLOCKDEV_ON_ERROR_STOP ||
-@@ -382,10 +400,12 @@
+@@ -399,10 +417,12 @@
          return;
      }
  
@@ -122,10 +120,10 @@ Index: new/block/backup.c
      qemu_coroutine_enter(job->common.co, job);
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 11:53:56.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:34.000000000 +0200
-@@ -2115,7 +2115,7 @@
-     }
+--- new.orig/blockdev.c        2014-11-20 07:55:31.000000000 +0100
++++ new/blockdev.c     2014-11-20 08:48:02.000000000 +0100
+@@ -2223,7 +2223,7 @@
+     bdrv_set_aio_context(target_bs, aio_context);
  
      backup_start(bs, target_bs, speed, sync, on_source_error, on_target_error,
 -                 block_job_cb, bs, &local_err);
@@ -135,9 +133,9 @@ Index: new/blockdev.c
          error_propagate(errp, local_err);
 Index: new/include/block/block_int.h
 ===================================================================
---- new.orig/include/block/block_int.h 2014-07-16 11:53:56.000000000 +0200
-+++ new/include/block/block_int.h      2014-07-16 12:01:34.000000000 +0200
-@@ -56,6 +56,9 @@
+--- new.orig/include/block/block_int.h 2014-11-20 07:55:31.000000000 +0100
++++ new/include/block/block_int.h      2014-11-20 08:52:59.000000000 +0100
+@@ -57,6 +57,9 @@
  #define BLOCK_OPT_REDUNDANCY        "redundancy"
  #define BLOCK_OPT_NOCOW             "nocow"
  
@@ -147,13 +145,13 @@ Index: new/include/block/block_int.h
  typedef struct BdrvTrackedRequest {
      BlockDriverState *bs;
      int64_t offset;
-@@ -539,7 +542,9 @@
+@@ -583,7 +586,9 @@
                    int64_t speed, MirrorSyncMode sync_mode,
                    BlockdevOnError on_source_error,
                    BlockdevOnError on_target_error,
 +                  BackupDumpFunc *dump_cb,
-                   BlockDriverCompletionFunc *cb, void *opaque,
+                   BlockCompletionFunc *cb, void *opaque,
 +                  bool paused,
                    Error **errp);
  
- #endif /* BLOCK_INT_H */
+ void blk_dev_change_media_cb(BlockBackend *blk, bool load);
index 6f7d8a29032a75360b9aa7385f33f303392dd0dd..6febcc44ae102e3f63e7413177a82daf36142c90 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/vma.c
 ===================================================================
---- new.orig/vma.c     2014-07-16 12:01:32.000000000 +0200
-+++ new/vma.c  2014-07-16 12:01:33.000000000 +0200
+--- new.orig/vma.c     2014-11-20 08:47:30.000000000 +0100
++++ new/vma.c  2014-11-20 08:47:47.000000000 +0100
 @@ -32,6 +32,7 @@
          "usage: vma command [command options]\n"
          "\n"
@@ -10,7 +10,7 @@ Index: new/vma.c
          "vma create <filename> [-c config] <archive> pathname ...\n"
          "vma extract <filename> [-r <fifo>] <targetdir>\n"
          "vma verify <filename> [-v]\n"
-@@ -605,6 +606,67 @@
+@@ -601,6 +602,67 @@
      return 0;
  }
  
@@ -78,7 +78,7 @@ Index: new/vma.c
  int main(int argc, char **argv)
  {
      const char *cmdname;
-@@ -631,6 +693,8 @@
+@@ -630,6 +692,8 @@
          return extract_content(argc, argv);
      } else if (!strcmp(cmdname, "verify")) {
          return verify_content(argc, argv);
index a730f456003c9d69948566bbc2cdcb587b240b84..c077281a7728bafc97d6e11a1fbdaebe03eeaef7 100644 (file)
@@ -5,8 +5,8 @@ user set backup=no to all VM disks.
 
 Index: new/vma-reader.c
 ===================================================================
---- new.orig/vma-reader.c      2014-07-16 12:01:33.000000000 +0200
-+++ new/vma-reader.c   2014-07-16 12:01:39.000000000 +0200
+--- new.orig/vma-reader.c      2014-11-20 07:34:34.000000000 +0100
++++ new/vma-reader.c   2014-11-20 07:54:47.000000000 +0100
 @@ -334,11 +334,6 @@
          }
      }
@@ -52,8 +52,8 @@ Index: new/vma-reader.c
      return ret;
 Index: new/vma-writer.c
 ===================================================================
---- new.orig/vma-writer.c      2014-07-16 12:01:36.000000000 +0200
-+++ new/vma-writer.c   2014-07-16 12:01:39.000000000 +0200
+--- new.orig/vma-writer.c      2014-11-20 07:49:23.000000000 +0100
++++ new/vma-writer.c   2014-11-20 07:54:47.000000000 +0100
 @@ -258,7 +258,7 @@
      }
  
@@ -114,8 +114,8 @@ Index: new/vma-writer.c
      return open_drives;
 Index: new/vma.c
 ===================================================================
---- new.orig/vma.c     2014-07-16 12:01:33.000000000 +0200
-+++ new/vma.c  2014-07-16 12:01:39.000000000 +0200
+--- new.orig/vma.c     2014-11-20 07:34:32.000000000 +0100
++++ new/vma.c  2014-11-20 07:54:47.000000000 +0100
 @@ -33,7 +33,7 @@
          "\n"
          "vma list <filename>\n"
@@ -240,8 +240,8 @@ Index: new/vma.c
      bdrv_drain_all();
 Index: new/vma.h
 ===================================================================
---- new.orig/vma.h     2014-07-16 12:01:35.000000000 +0200
-+++ new/vma.h  2014-07-16 12:01:39.000000000 +0200
+--- new.orig/vma.h     2014-11-20 07:49:17.000000000 +0100
++++ new/vma.h  2014-11-20 07:54:47.000000000 +0100
 @@ -128,6 +128,7 @@
                                        size_t *zero_bytes);
  
index 076e86f9e7f2c4ccbae620b817f790193ae0d66a..b351947df16fd6d7d61b5e84661c9d3615fb0988 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/vma-writer.c
 ===================================================================
---- new.orig/vma-writer.c      2014-07-16 12:01:32.000000000 +0200
-+++ new/vma-writer.c   2014-07-16 12:01:35.000000000 +0200
+--- new.orig/vma-writer.c      2014-11-20 07:34:19.000000000 +0100
++++ new/vma-writer.c   2014-11-20 07:49:17.000000000 +0100
 @@ -798,6 +798,13 @@
      return transferred;
  }
@@ -18,8 +18,8 @@ Index: new/vma-writer.c
      g_assert(vmaw != NULL);
 Index: new/vma.h
 ===================================================================
---- new.orig/vma.h     2014-07-16 12:01:32.000000000 +0200
-+++ new/vma.h  2014-07-16 12:01:35.000000000 +0200
+--- new.orig/vma.h     2014-11-20 07:34:27.000000000 +0100
++++ new/vma.h  2014-11-20 07:49:17.000000000 +0100
 @@ -116,6 +116,7 @@
  
  VmaWriter *vma_writer_create(const char *filename, uuid_t uuid, Error **errp);
@@ -30,9 +30,9 @@ Index: new/vma.h
                            size_t len);
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 12:01:35.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:35.000000000 +0200
-@@ -1931,7 +1931,7 @@
+--- new.orig/blockdev.c        2014-11-20 07:49:14.000000000 +0100
++++ new/blockdev.c     2014-11-20 07:49:17.000000000 +0100
+@@ -2015,7 +2015,7 @@
                                 buf, &zero_bytes);
          if (ret < 0) {
              if (!backup_state.error) {
index ec5a8af1ce3564e2adee252f510be527cac77259..73f2c9609e1b15290feec5e508d1225337b90963 100644 (file)
@@ -5,8 +5,8 @@ Also, previous code produced segmentation faults in qemu_co_mutex_lock().
 
 Index: new/vma-writer.c
 ===================================================================
---- new.orig/vma-writer.c      2014-07-16 12:01:35.000000000 +0200
-+++ new/vma-writer.c   2014-07-16 12:01:36.000000000 +0200
+--- new.orig/vma-writer.c      2014-11-20 09:08:33.000000000 +0100
++++ new/vma-writer.c   2014-11-20 09:10:14.000000000 +0100
 @@ -34,14 +34,8 @@
      do { if (DEBUG_VMA) { printf("vma: " fmt, ## __VA_ARGS__); } } while (0)
  
@@ -267,7 +267,7 @@ Index: new/vma-writer.c
 -    /* this should not happen - just to be sure */
 -    while (!qemu_co_queue_empty(&vmaw->wqueue)) {
 -        DPRINTF("vma_writer_close wait\n");
--        co_sleep_ns(QEMU_CLOCK_REALTIME, 1000000);
+-        co_aio_sleep_ns(qemu_get_aio_context(), QEMU_CLOCK_REALTIME, 1000000);
 -    }
 +    assert(vmaw->co_writer == NULL);
  
@@ -285,9 +285,9 @@ Index: new/vma-writer.c
  }
 Index: new/blockdev.c
 ===================================================================
---- new.orig/blockdev.c        2014-07-16 12:01:35.000000000 +0200
-+++ new/blockdev.c     2014-07-16 12:01:36.000000000 +0200
-@@ -2010,6 +2010,11 @@
+--- new.orig/blockdev.c        2014-11-20 09:08:33.000000000 +0100
++++ new/blockdev.c     2014-11-20 09:08:49.000000000 +0100
+@@ -2094,6 +2094,11 @@
          error_setg(&backup_state.error, "backup cancelled");
      }
  
@@ -299,7 +299,7 @@ Index: new/blockdev.c
      /* drain all i/o (awake jobs waiting for aio) */
      bdrv_drain_all();
  
-@@ -2022,6 +2027,7 @@
+@@ -2106,6 +2111,7 @@
              if (job) {
                  if (!di->completed) {
                       block_job_cancel_sync(job);
index 7d43f91459b37cbb263714ebd095c1950a3fff01..9c9d7a2b89483c1349deeb66c57ff29409a74926 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/hw/net/e1000.c
 ===================================================================
---- new.orig/hw/net/e1000.c    2014-07-16 11:53:55.000000000 +0200
-+++ new/hw/net/e1000.c 2014-07-16 12:01:38.000000000 +0200
-@@ -1590,7 +1590,7 @@
+--- new.orig/hw/net/e1000.c    2014-11-20 06:45:06.000000000 +0100
++++ new/hw/net/e1000.c 2014-11-20 07:54:14.000000000 +0100
+@@ -1606,7 +1606,7 @@
  
      k->init = pci_e1000_init;
      k->exit = pci_e1000_uninit;
@@ -13,9 +13,9 @@ Index: new/hw/net/e1000.c
      k->revision = info->revision;
 Index: new/hw/net/ne2000.c
 ===================================================================
---- new.orig/hw/net/ne2000.c   2014-07-16 11:53:55.000000000 +0200
-+++ new/hw/net/ne2000.c        2014-07-16 12:01:38.000000000 +0200
-@@ -765,7 +765,7 @@
+--- new.orig/hw/net/ne2000.c   2014-11-20 06:45:06.000000000 +0100
++++ new/hw/net/ne2000.c        2014-11-20 07:54:14.000000000 +0100
+@@ -773,7 +773,7 @@
  
      k->init = pci_ne2000_init;
      k->exit = pci_ne2000_exit;
@@ -26,9 +26,9 @@ Index: new/hw/net/ne2000.c
      k->class_id = PCI_CLASS_NETWORK_ETHERNET;
 Index: new/hw/net/pcnet-pci.c
 ===================================================================
---- new.orig/hw/net/pcnet-pci.c        2014-07-16 11:53:55.000000000 +0200
-+++ new/hw/net/pcnet-pci.c     2014-07-16 12:01:38.000000000 +0200
-@@ -358,7 +358,7 @@
+--- new.orig/hw/net/pcnet-pci.c        2014-11-20 06:45:06.000000000 +0100
++++ new/hw/net/pcnet-pci.c     2014-11-20 07:54:14.000000000 +0100
+@@ -367,7 +367,7 @@
  
      k->init = pci_pcnet_init;
      k->exit = pci_pcnet_uninit;
@@ -39,9 +39,9 @@ Index: new/hw/net/pcnet-pci.c
      k->revision = 0x10;
 Index: new/hw/net/rtl8139.c
 ===================================================================
---- new.orig/hw/net/rtl8139.c  2014-07-16 11:53:55.000000000 +0200
-+++ new/hw/net/rtl8139.c       2014-07-16 12:01:38.000000000 +0200
-@@ -3557,7 +3557,7 @@
+--- new.orig/hw/net/rtl8139.c  2014-11-20 06:45:06.000000000 +0100
++++ new/hw/net/rtl8139.c       2014-11-20 07:54:14.000000000 +0100
+@@ -3562,7 +3562,7 @@
  
      k->init = pci_rtl8139_init;
      k->exit = pci_rtl8139_uninit;
@@ -52,9 +52,9 @@ Index: new/hw/net/rtl8139.c
      k->revision = RTL8139_PCI_REVID; /* >=0x20 is for 8139C+ */
 Index: new/hw/virtio/virtio-pci.c
 ===================================================================
---- new.orig/hw/virtio/virtio-pci.c    2014-07-16 11:53:55.000000000 +0200
-+++ new/hw/virtio/virtio-pci.c 2014-07-16 12:01:38.000000000 +0200
-@@ -1444,7 +1444,7 @@
+--- new.orig/hw/virtio/virtio-pci.c    2014-11-20 06:45:06.000000000 +0100
++++ new/hw/virtio/virtio-pci.c 2014-11-20 07:54:14.000000000 +0100
+@@ -1445,7 +1445,7 @@
      PCIDeviceClass *k = PCI_DEVICE_CLASS(klass);
      VirtioPCIClass *vpciklass = VIRTIO_PCI_CLASS(klass);
  
index d4b7382b86b50b7603380532cf795bbbc37f6195..329170fe74923a8769ecedbbac53b2d922bb0006 100644 (file)
@@ -1,8 +1,8 @@
-Index: new/vl.c
+Index: new/accel.c
 ===================================================================
---- new.orig/vl.c      2014-07-16 12:01:28.000000000 +0200
-+++ new/vl.c   2014-07-16 12:01:29.000000000 +0200
-@@ -2687,8 +2687,8 @@
+--- new.orig/accel.c   2014-11-20 06:45:05.000000000 +0100
++++ new/accel.c        2014-11-20 07:25:45.000000000 +0100
+@@ -87,8 +87,8 @@
  
      p = qemu_opt_get(qemu_get_machine_opts(), "accel");
      if (p == NULL) {
index 002f2e81919205d4750840d2304899bada885833..e01023f04fa80111fc2c635da4c686859a994321 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2014-07-16 11:53:56.000000000 +0200
-+++ new/qemu-options.hx        2014-07-16 12:01:27.000000000 +0200
-@@ -379,6 +379,12 @@
+--- new.orig/qemu-options.hx   2014-11-20 06:45:06.000000000 +0100
++++ new/qemu-options.hx        2014-11-20 06:50:44.000000000 +0100
+@@ -386,6 +386,12 @@
  @table @option
  ETEXI
  
@@ -17,8 +17,8 @@ Index: new/qemu-options.hx
  DEF("fdb", HAS_ARG, QEMU_OPTION_fdb, "", QEMU_ARCH_ALL)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2014-07-16 11:53:56.000000000 +0200
-+++ new/vl.c   2014-07-16 12:01:27.000000000 +0200
+--- new.orig/vl.c      2014-11-20 06:45:06.000000000 +0100
++++ new/vl.c   2014-11-20 06:50:44.000000000 +0100
 @@ -101,6 +101,8 @@
  #endif
  #include "sysemu/qtest.h"
@@ -28,7 +28,7 @@ Index: new/vl.c
  #include "disas/disas.h"
  
  
-@@ -153,6 +155,7 @@
+@@ -154,6 +156,7 @@
  CharDriverState *sclp_hds[MAX_SCLP_CONSOLES];
  int win2k_install_hack = 0;
  int singlestep = 0;
@@ -36,7 +36,7 @@ Index: new/vl.c
  int smp_cpus = 1;
  int max_cpus = 0;
  int smp_cores = 1;
-@@ -2897,6 +2900,9 @@
+@@ -2738,6 +2741,9 @@
  int main(int argc, char **argv, char **envp)
  {
      int i;
@@ -44,9 +44,9 @@ Index: new/vl.c
 +    long int fairsched_id_long = 0;
 +    char *ep;
      int snapshot, linux_boot;
-     const char *icount_option = NULL;
      const char *initrd_filename;
-@@ -3717,6 +3723,21 @@
+     const char *kernel_filename, *kernel_cmdline;
+@@ -3560,6 +3566,21 @@
                      exit(1);
                  }
                  break;
@@ -68,7 +68,7 @@ Index: new/vl.c
            case QEMU_OPTION_vnc:
  #ifdef CONFIG_VNC
                  display_remote++;
-@@ -3992,6 +4013,40 @@
+@@ -3844,6 +3865,40 @@
                            OBJECT_CLASS(machine_class))));
      object_property_add_child(object_get_root(), "machine",
                                OBJECT(current_machine), &error_abort);
@@ -112,7 +112,7 @@ Index: new/vl.c
 Index: new/vzsyscalls.h
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/vzsyscalls.h   2014-07-16 12:01:27.000000000 +0200
++++ new/vzsyscalls.h   2014-11-20 06:50:44.000000000 +0100
 @@ -0,0 +1,47 @@
 +/*
 + *  Copyright (C) 2000-2008, Parallels, Inc. All rights reserved.
index 1053880eaea9bf930f9b9c24f5d8b42b65623da3..58d9ecc857cef50a16340563f696409626c223fb 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qemu-img.c
 ===================================================================
---- new.orig/qemu-img.c        2014-07-16 11:53:56.000000000 +0200
-+++ new/qemu-img.c     2014-07-16 12:01:29.000000000 +0200
-@@ -1931,7 +1931,8 @@
+--- new.orig/qemu-img.c        2014-11-20 06:45:06.000000000 +0100
++++ new/qemu-img.c     2014-11-20 06:51:05.000000000 +0100
+@@ -2080,7 +2080,8 @@
  
      list = collect_image_info_list(filename, fmt, chain);
      if (!list) {
index 4a6871d553832b01a36444e74bb329cf495360ca..395c54cc05aca4590cff0b10ad7c7e47e9fee2bc 100644 (file)
@@ -23,9 +23,9 @@ Subject: [PATCH] internal-snapshot-async-qemu1.7.patch
 
 Index: new/Makefile.objs
 ===================================================================
---- new.orig/Makefile.objs     2014-08-07 11:56:07.000000000 +0200
-+++ new/Makefile.objs  2014-08-07 11:56:38.000000000 +0200
-@@ -57,6 +57,7 @@
+--- new.orig/Makefile.objs     2014-11-20 09:13:01.000000000 +0100
++++ new/Makefile.objs  2014-11-20 09:16:47.000000000 +0100
+@@ -56,6 +56,7 @@
  common-obj-y += qemu-char.o #aio.o
  common-obj-y += block-migration.o
  common-obj-y += page_cache.o xbzrle.o
@@ -35,22 +35,22 @@ Index: new/Makefile.objs
  
 Index: new/block.c
 ===================================================================
---- new.orig/block.c   2014-08-02 15:03:20.000000000 +0200
-+++ new/block.c        2014-08-07 13:26:45.000000000 +0200
-@@ -2083,7 +2083,7 @@
+--- new.orig/block.c   2014-11-20 09:13:01.000000000 +0100
++++ new/block.c        2014-11-20 09:16:47.000000000 +0100
+@@ -2119,7 +2119,7 @@
      bdrv_set_backing_hd(bs_top, bs_new);
  }
  
 -static void bdrv_delete(BlockDriverState *bs)
 +void bdrv_delete(BlockDriverState *bs)
  {
-     assert(!bs->dev);
      assert(!bs->job);
+     assert(bdrv_op_blocker_is_empty(bs));
 Index: new/hmp-commands.hx
 ===================================================================
---- new.orig/hmp-commands.hx   2014-08-07 11:56:20.000000000 +0200
-+++ new/hmp-commands.hx        2014-08-07 11:56:38.000000000 +0200
-@@ -1803,6 +1803,8 @@
+--- new.orig/hmp-commands.hx   2014-11-20 09:13:01.000000000 +0100
++++ new/hmp-commands.hx        2014-11-20 09:16:47.000000000 +0100
+@@ -1799,6 +1799,8 @@
  show current migration capabilities
  @item info migrate_cache_size
  show current migration XBZRLE cache size
@@ -59,7 +59,7 @@ Index: new/hmp-commands.hx
  @item info balloon
  show balloon information
  @item info qtree
-@@ -1824,3 +1826,35 @@
+@@ -1822,3 +1824,35 @@
  STEXI
  @end table
  ETEXI
@@ -97,11 +97,11 @@ Index: new/hmp-commands.hx
 +    },
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2014-08-07 11:56:20.000000000 +0200
-+++ new/hmp.c  2014-08-07 11:56:38.000000000 +0200
-@@ -1805,3 +1805,60 @@
+--- new.orig/hmp.c     2014-11-20 09:13:01.000000000 +0100
++++ new/hmp.c  2014-11-20 09:16:47.000000000 +0100
+@@ -1849,3 +1849,60 @@
  
-     monitor_printf(mon, "\n");
+     qapi_free_MemoryDeviceInfoList(info_list);
  }
 +
 +void hmp_savevm_start(Monitor *mon, const QDict *qdict)
@@ -162,8 +162,8 @@ Index: new/hmp.c
 +}
 Index: new/hmp.h
 ===================================================================
---- new.orig/hmp.h     2014-08-07 11:56:19.000000000 +0200
-+++ new/hmp.h  2014-08-07 11:56:38.000000000 +0200
+--- new.orig/hmp.h     2014-11-20 09:13:01.000000000 +0100
++++ new/hmp.h  2014-11-20 09:16:47.000000000 +0100
 @@ -26,6 +26,7 @@
  void hmp_info_uuid(Monitor *mon, const QDict *qdict);
  void hmp_info_chardev(Monitor *mon, const QDict *qdict);
@@ -185,20 +185,20 @@ Index: new/hmp.h
  void hmp_nbd_server_start(Monitor *mon, const QDict *qdict);
 Index: new/include/block/block.h
 ===================================================================
---- new.orig/include/block/block.h     2014-08-02 15:03:21.000000000 +0200
-+++ new/include/block/block.h  2014-08-07 11:56:38.000000000 +0200
-@@ -275,6 +275,7 @@
-     const char *backing_file);
+--- new.orig/include/block/block.h     2014-11-20 09:13:01.000000000 +0100
++++ new/include/block/block.h  2014-11-20 09:16:47.000000000 +0100
+@@ -235,6 +235,7 @@
  int bdrv_get_backing_file_depth(BlockDriverState *bs);
+ void bdrv_refresh_filename(BlockDriverState *bs);
  int bdrv_truncate(BlockDriverState *bs, int64_t offset);
 +void bdrv_delete(BlockDriverState *bs);
+ int64_t bdrv_nb_sectors(BlockDriverState *bs);
  int64_t bdrv_getlength(BlockDriverState *bs);
  int64_t bdrv_get_allocated_file_size(BlockDriverState *bs);
- void bdrv_get_geometry(BlockDriverState *bs, uint64_t *nb_sectors_ptr);
 Index: new/include/sysemu/sysemu.h
 ===================================================================
---- new.orig/include/sysemu/sysemu.h   2014-08-02 15:03:21.000000000 +0200
-+++ new/include/sysemu/sysemu.h        2014-08-07 11:56:38.000000000 +0200
+--- new.orig/include/sysemu/sysemu.h   2014-11-20 09:13:01.000000000 +0100
++++ new/include/sysemu/sysemu.h        2014-11-20 09:16:47.000000000 +0100
 @@ -76,16 +76,17 @@
  
  void do_savevm(Monitor *mon, const QDict *qdict);
@@ -221,8 +221,8 @@ Index: new/include/sysemu/sysemu.h
  int qemu_loadvm_state(QEMUFile *f);
 Index: new/monitor.c
 ===================================================================
---- new.orig/monitor.c 2014-08-07 11:56:19.000000000 +0200
-+++ new/monitor.c      2014-08-07 11:56:38.000000000 +0200
+--- new.orig/monitor.c 2014-11-20 09:13:01.000000000 +0100
++++ new/monitor.c      2014-11-20 09:16:47.000000000 +0100
 @@ -2876,6 +2876,13 @@
          .mhandler.cmd = hmp_info_migrate_cache_size,
      },
@@ -239,9 +239,9 @@ Index: new/monitor.c
          .params     = "",
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-08-07 11:56:20.000000000 +0200
-+++ new/qapi-schema.json       2014-08-07 11:56:38.000000000 +0200
-@@ -547,6 +547,42 @@
+--- new.orig/qapi-schema.json  2014-11-20 09:13:01.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 09:16:47.000000000 +0100
+@@ -550,6 +550,42 @@
             '*downtime': 'int',
             '*setup-time': 'int'} }
  
@@ -284,7 +284,7 @@ Index: new/qapi-schema.json
  ##
  # @query-migrate
  #
-@@ -2644,8 +2680,18 @@
+@@ -2649,8 +2685,18 @@
  #
  # Since: 1.2.0
  ##
@@ -305,9 +305,9 @@ Index: new/qapi-schema.json
  #
 Index: new/qemu-options.hx
 ===================================================================
---- new.orig/qemu-options.hx   2014-08-07 11:55:39.000000000 +0200
-+++ new/qemu-options.hx        2014-08-07 11:56:38.000000000 +0200
-@@ -2951,6 +2951,19 @@
+--- new.orig/qemu-options.hx   2014-11-20 09:13:01.000000000 +0100
++++ new/qemu-options.hx        2014-11-20 09:16:47.000000000 +0100
+@@ -2975,6 +2975,19 @@
  Start right away with a saved state (@code{loadvm} in monitor)
  ETEXI
  
@@ -329,9 +329,9 @@ Index: new/qemu-options.hx
      "-daemonize      daemonize QEMU after initializing\n", QEMU_ARCH_ALL)
 Index: new/qmp-commands.hx
 ===================================================================
---- new.orig/qmp-commands.hx   2014-08-07 11:56:19.000000000 +0200
-+++ new/qmp-commands.hx        2014-08-07 11:56:38.000000000 +0200
-@@ -3786,3 +3786,34 @@
+--- new.orig/qmp-commands.hx   2014-11-20 09:13:01.000000000 +0100
++++ new/qmp-commands.hx        2014-11-20 09:16:47.000000000 +0100
+@@ -3883,3 +3883,34 @@
  <- { "return": {} }
  
  EQMP
@@ -369,8 +369,8 @@ Index: new/qmp-commands.hx
 Index: new/savevm-async.c
 ===================================================================
 --- /dev/null  1970-01-01 00:00:00.000000000 +0000
-+++ new/savevm-async.c 2014-08-07 13:29:41.000000000 +0200
-@@ -0,0 +1,488 @@
++++ new/savevm-async.c 2014-11-20 09:17:48.000000000 +0100
+@@ -0,0 +1,484 @@
 +#include "qemu-common.h"
 +#include "qapi/qmp/qerror.h"
 +#include "sysemu/sysemu.h"
@@ -632,12 +632,8 @@ Index: new/savevm-async.c
 +    }
 +
 +    /* Open the image */
-+    snap_state.bs = bdrv_new("vmstate", &local_err);
-+    if (local_err) {
-+        error_propagate(errp, local_err);
-+        goto restart;
-+    }
-+
++    snap_state.bs = bdrv_new();
++ 
 +    ret = bdrv_open(&snap_state.bs, statefile, NULL, NULL, bdrv_oflags, drv, &local_err);
 +    if (ret < 0) {
 +        error_set(errp, ERROR_CLASS_GENERIC_ERROR, "failed to open '%s'", statefile);
@@ -822,7 +818,7 @@ Index: new/savevm-async.c
 +    QEMUFile *f;
 +    int ret = -1;
 +
-+    bs = bdrv_new("vmstate", &error_abort);
++    bs = bdrv_new();
 +    ret = bdrv_open(&bs, filename, NULL, NULL, BDRV_O_CACHE_WB, drv, &local_err);
 +    error_setg(&blocker, "block device is in use by load state");
 +    bdrv_op_block_all(bs, blocker);
@@ -861,8 +857,8 @@ Index: new/savevm-async.c
 +}
 Index: new/savevm.c
 ===================================================================
---- new.orig/savevm.c  2014-08-02 15:03:21.000000000 +0200
-+++ new/savevm.c       2014-08-07 11:56:38.000000000 +0200
+--- new.orig/savevm.c  2014-11-20 09:13:01.000000000 +0100
++++ new/savevm.c       2014-11-20 09:16:47.000000000 +0100
 @@ -596,11 +596,11 @@
      return false;
  }
@@ -913,9 +909,9 @@ Index: new/savevm.c
  uint64_t qemu_savevm_state_pending(QEMUFile *f, uint64_t max_size)
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2014-08-07 11:55:57.000000000 +0200
-+++ new/vl.c   2014-08-07 11:56:38.000000000 +0200
-@@ -2930,6 +2930,7 @@
+--- new.orig/vl.c      2014-11-20 09:13:01.000000000 +0100
++++ new/vl.c   2014-11-20 09:16:47.000000000 +0100
+@@ -2760,6 +2760,7 @@
      int optind;
      const char *optarg;
      const char *loadvm = NULL;
@@ -923,7 +919,7 @@ Index: new/vl.c
      MachineClass *machine_class;
      const char *cpu_model;
      const char *vga_model = NULL;
-@@ -3625,6 +3626,9 @@
+@@ -3457,6 +3458,9 @@
            case QEMU_OPTION_loadvm:
                loadvm = optarg;
                break;
@@ -933,7 +929,7 @@ Index: new/vl.c
              case QEMU_OPTION_full_screen:
                  full_screen = 1;
                  break;
-@@ -4569,6 +4573,10 @@
+@@ -4428,6 +4432,10 @@
          if (load_vmstate(loadvm) < 0) {
              autostart = 0;
          }
@@ -943,4 +939,4 @@ Index: new/vl.c
 +        }
      }
  
-     qdev_prop_check_global();
+     qdev_prop_check_globals();
index 28bb19462b23c6450d20a0e0c379212bfca78fd4..1bd17d1c013f60f8e289e86e861610559e88b7ac 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/vnc.c       2014-07-16 12:01:27.000000000 +0200
-@@ -1631,6 +1631,10 @@
+--- new.orig/ui/vnc.c  2014-11-20 06:45:06.000000000 +0100
++++ new/ui/vnc.c       2014-11-20 06:50:51.000000000 +0100
+@@ -1633,6 +1633,10 @@
  
  static void do_key_event(VncState *vs, int down, int keycode, int sym)
  {
@@ -13,7 +13,7 @@ Index: new/ui/vnc.c
      /* QEMU console switch */
      switch(keycode) {
      case 0x2a:                          /* Left Shift */
-@@ -1710,7 +1714,24 @@
+@@ -1712,7 +1716,24 @@
      }
  
      if (qemu_console_is_graphic(NULL)) {
@@ -38,7 +38,7 @@ Index: new/ui/vnc.c
      } else {
          bool numlock = vs->modifiers_state[0x45];
          bool control = (vs->modifiers_state[0x1d] ||
-@@ -1849,7 +1870,8 @@
+@@ -1851,7 +1872,8 @@
          lsym = lsym - 'A' + 'a';
      }
  
@@ -48,7 +48,7 @@ Index: new/ui/vnc.c
      trace_vnc_key_event_map(down, sym, keycode, code2name(keycode));
      do_key_event(vs, down, keycode, sym);
  }
-@@ -3032,7 +3054,7 @@
+@@ -3046,7 +3068,7 @@
  char *vnc_display_local_addr(DisplayState *ds)
  {
      VncDisplay *vs = vnc_display;
index 81556a439d6489f8b77d4867fc65823008e5eb93..d028e3e1ca85fe53b2258f2de1d23a07dd40cc32 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-07-16 12:01:29.000000000 +0200
-+++ new/qapi-schema.json       2014-07-16 12:01:30.000000000 +0200
-@@ -2388,6 +2388,8 @@
+--- new.orig/qapi-schema.json  2014-11-20 07:26:23.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 07:26:39.000000000 +0100
+@@ -2393,6 +2393,8 @@
  #
  # @default: #optional whether the machine is default
  #
@@ -11,7 +11,7 @@ Index: new/qapi-schema.json
  # @cpu-max: maximum number of CPUs supported by the machine type
  #           (since 1.5.0)
  #
-@@ -2395,7 +2397,7 @@
+@@ -2400,7 +2402,7 @@
  ##
  { 'type': 'MachineInfo',
    'data': { 'name': 'str', '*alias': 'str',
@@ -22,9 +22,9 @@ Index: new/qapi-schema.json
  # @query-machines:
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2014-07-16 12:01:29.000000000 +0200
-+++ new/vl.c   2014-07-16 12:01:30.000000000 +0200
-@@ -1660,6 +1660,11 @@
+--- new.orig/vl.c      2014-11-20 06:50:55.000000000 +0100
++++ new/vl.c   2014-11-20 07:26:39.000000000 +0100
+@@ -1534,6 +1534,11 @@
          info->name = g_strdup(mc->name);
          info->cpu_max = !mc->max_cpus ? 1 : mc->max_cpus;
  
index 468dcbe23d55e5c2558d635dcdef5f463f679541..c485b03f31baffb6b4832aa4d251f48a0641887e 100644 (file)
@@ -9,8 +9,8 @@ Limits: This only works for a single spice session.
 
 Index: new/ui/spice-core.c
 ===================================================================
---- new.orig/ui/spice-core.c   2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/spice-core.c        2014-07-16 12:01:31.000000000 +0200
+--- new.orig/ui/spice-core.c   2014-11-20 06:45:06.000000000 +0100
++++ new/ui/spice-core.c        2014-11-20 07:26:43.000000000 +0100
 @@ -544,6 +544,11 @@
      micro = SPICE_SERVER_VERSION & 0xff;
      info->compiled_version = g_strdup_printf("%d.%d.%d", major, minor, micro);
@@ -25,9 +25,9 @@ Index: new/ui/spice-core.c
          info->port = port;
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-07-16 12:01:30.000000000 +0200
-+++ new/qapi-schema.json       2014-07-16 12:01:31.000000000 +0200
-@@ -865,11 +865,14 @@
+--- new.orig/qapi-schema.json  2014-11-20 07:26:39.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 07:26:43.000000000 +0100
+@@ -868,11 +868,14 @@
  #
  # @channels: a list of @SpiceChannel for each active spice channel
  #
index 3670ddda2dbfdbeff6bf2e8515d58e50a0992043..7036c8456029f1c8cf6701654bd83216d9cc9da9 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/ui/vnc.c
 ===================================================================
---- new.orig/ui/vnc.c  2014-07-16 12:01:27.000000000 +0200
-+++ new/ui/vnc.c       2014-07-16 12:01:28.000000000 +0200
+--- new.orig/ui/vnc.c  2014-11-20 06:50:51.000000000 +0100
++++ new/ui/vnc.c       2014-11-20 06:50:55.000000000 +0100
 @@ -46,6 +46,125 @@
  #include "vnc_keysym.h"
  #include "d3des.h"
@@ -128,7 +128,7 @@ Index: new/ui/vnc.c
  static VncDisplay *vnc_display; /* needed for info vnc */
  
  static int vnc_cursor_define(VncState *vs);
-@@ -3142,6 +3261,7 @@
+@@ -3156,6 +3275,7 @@
              tls = 1; /* Require TLS */
          } else if (strncmp(options, "x509", 4) == 0) {
              char *start, *end;
@@ -136,7 +136,7 @@ Index: new/ui/vnc.c
              x509 = 1; /* Require x509 certificates */
              if (strncmp(options, "x509verify", 10) == 0)
                  vs->tls.x509verify = 1; /* ...and verify client certs */
-@@ -3162,8 +3282,10 @@
+@@ -3176,8 +3296,10 @@
                  }
                  g_free(path);
              } else {
@@ -149,7 +149,7 @@ Index: new/ui/vnc.c
              }
  #endif
  #if defined(CONFIG_VNC_TLS) || defined(CONFIG_VNC_SASL)
-@@ -3236,10 +3358,10 @@
+@@ -3250,10 +3372,10 @@
              vs->auth = VNC_AUTH_VENCRYPT;
              if (x509) {
                  VNC_DEBUG("Initializing VNC server with x509 password auth\n");
@@ -164,8 +164,8 @@ Index: new/ui/vnc.c
  #endif /* CONFIG_VNC_TLS */
 Index: new/ui/vnc-auth-vencrypt.c
 ===================================================================
---- new.orig/ui/vnc-auth-vencrypt.c    2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/vnc-auth-vencrypt.c 2014-07-16 12:01:28.000000000 +0200
+--- new.orig/ui/vnc-auth-vencrypt.c    2014-11-20 06:45:06.000000000 +0100
++++ new/ui/vnc-auth-vencrypt.c 2014-11-20 06:50:55.000000000 +0100
 @@ -26,6 +26,107 @@
  
  #include "vnc.h"
@@ -289,9 +289,9 @@ Index: new/ui/vnc-auth-vencrypt.c
         VNC_DEBUG("Start TLS auth VNC\n");
 Index: new/ui/vnc.h
 ===================================================================
---- new.orig/ui/vnc.h  2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/vnc.h       2014-07-16 12:01:28.000000000 +0200
-@@ -281,6 +281,8 @@
+--- new.orig/ui/vnc.h  2014-11-20 06:45:06.000000000 +0100
++++ new/ui/vnc.h       2014-11-20 06:50:55.000000000 +0100
+@@ -282,6 +282,8 @@
      char challenge[VNC_AUTH_CHALLENGE_SIZE];
  #ifdef CONFIG_VNC_TLS
      int subauth; /* Used by VeNCrypt */
@@ -300,7 +300,7 @@ Index: new/ui/vnc.h
      VncStateTLS tls;
  #endif
  #ifdef CONFIG_VNC_SASL
-@@ -596,4 +598,6 @@
+@@ -597,4 +599,6 @@
  int vnc_zywrle_send_framebuffer_update(VncState *vs, int x, int y, int w, int h);
  void vnc_zrle_clear(VncState *vs);
  
@@ -309,8 +309,8 @@ Index: new/ui/vnc.h
  #endif /* __QEMU_VNC_H */
 Index: new/ui/vnc-tls.c
 ===================================================================
---- new.orig/ui/vnc-tls.c      2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/vnc-tls.c   2014-07-16 12:01:28.000000000 +0200
+--- new.orig/ui/vnc-tls.c      2014-11-20 06:45:06.000000000 +0100
++++ new/ui/vnc-tls.c   2014-11-20 06:50:55.000000000 +0100
 @@ -302,6 +302,14 @@
  
  static int vnc_set_gnutls_priority(gnutls_session_t s, int x509)
@@ -338,7 +338,7 @@ Index: new/ui/vnc-tls.c
      rc = gnutls_kx_set_priority(s, x509 ? kx_x509 : kx_anon);
      if (rc != GNUTLS_E_SUCCESS) {
          return -1;
-@@ -464,6 +477,24 @@
+@@ -462,6 +475,24 @@
      return 0;
  }
  
@@ -365,8 +365,8 @@ Index: new/ui/vnc-tls.c
                                 const char *certdir)
 Index: new/ui/vnc-tls.h
 ===================================================================
---- new.orig/ui/vnc-tls.h      2014-07-16 11:53:56.000000000 +0200
-+++ new/ui/vnc-tls.h   2014-07-16 12:01:28.000000000 +0200
+--- new.orig/ui/vnc-tls.h      2014-11-20 06:45:06.000000000 +0100
++++ new/ui/vnc-tls.h   2014-11-20 06:50:55.000000000 +0100
 @@ -68,6 +68,8 @@
  
  int vnc_tls_validate_certificate(VncState *vs);
@@ -378,9 +378,9 @@ Index: new/ui/vnc-tls.h
  
 Index: new/vl.c
 ===================================================================
---- new.orig/vl.c      2014-07-16 12:01:27.000000000 +0200
-+++ new/vl.c   2014-07-16 12:01:28.000000000 +0200
-@@ -3730,6 +3730,7 @@
+--- new.orig/vl.c      2014-11-20 06:50:44.000000000 +0100
++++ new/vl.c   2014-11-20 06:50:55.000000000 +0100
+@@ -3573,6 +3573,7 @@
                    fprintf(stderr, "Invalid ID\n");
                    exit(1);
                }
@@ -390,9 +390,9 @@ Index: new/vl.c
                  cpuunits = atoi(optarg);
 Index: new/include/ui/console.h
 ===================================================================
---- new.orig/include/ui/console.h      2014-07-16 11:53:56.000000000 +0200
-+++ new/include/ui/console.h   2014-07-16 12:01:28.000000000 +0200
-@@ -317,6 +317,7 @@
+--- new.orig/include/ui/console.h      2014-11-20 06:45:06.000000000 +0100
++++ new/include/ui/console.h   2014-11-20 06:50:55.000000000 +0100
+@@ -327,6 +327,7 @@
  void cocoa_display_init(DisplayState *ds, int full_screen);
  
  /* vnc.c */
index a83069e64d447624010228397f23b8024f11f406..d3066681b12bb795ac63f4e0b2180b5a29593f27 100644 (file)
@@ -1,8 +1,8 @@
 Index: new/hw/i386/pc.c
 ===================================================================
---- new.orig/hw/i386/pc.c      2014-07-16 11:53:56.000000000 +0200
-+++ new/hw/i386/pc.c   2014-07-16 12:01:30.000000000 +0200
-@@ -1023,9 +1023,9 @@
+--- new.orig/hw/i386/pc.c      2014-11-20 06:45:06.000000000 +0100
++++ new/hw/i386/pc.c   2014-11-20 07:26:33.000000000 +0100
+@@ -1020,9 +1020,9 @@
      /* init CPUs */
      if (cpu_model == NULL) {
  #ifdef TARGET_X86_64
index f1cf37fa1df339ff0a9e7e8b0c199992b16493dc..1f7f7a418af8627a18a14fcd23ec6a3b63849bd5 100644 (file)
@@ -1,12 +1,12 @@
 Index: new/ui/spice-core.c
 ===================================================================
---- new.orig/ui/spice-core.c   2014-07-16 12:01:31.000000000 +0200
-+++ new/ui/spice-core.c        2014-07-16 12:01:31.000000000 +0200
+--- new.orig/ui/spice-core.c   2014-11-20 07:26:43.000000000 +0100
++++ new/ui/spice-core.c        2014-11-20 07:33:22.000000000 +0100
 @@ -682,32 +682,35 @@
  
      if (tls_port) {
          x509_dir = qemu_opt_get(opts, "x509-dir");
--        if (NULL == x509_dir) {
+-        if (!x509_dir) {
 -            x509_dir = ".";
 -        }
  
index fd21ed24d65bc25432c1446470c2d10bb5ebc0f6..2220073d9e1a428ed303abbeeb506eb82a56d6ca 100644 (file)
@@ -1,7 +1,7 @@
 Index: new/hmp.c
 ===================================================================
---- new.orig/hmp.c     2014-07-16 11:53:56.000000000 +0200
-+++ new/hmp.c  2014-07-16 12:01:29.000000000 +0200
+--- new.orig/hmp.c     2014-11-20 06:45:05.000000000 +0100
++++ new/hmp.c  2014-11-20 07:26:23.000000000 +0100
 @@ -539,7 +539,35 @@
          return;
      }
@@ -41,9 +41,9 @@ Index: new/hmp.c
  }
 Index: new/hw/virtio/virtio-balloon.c
 ===================================================================
---- new.orig/hw/virtio/virtio-balloon.c        2014-07-16 11:53:56.000000000 +0200
-+++ new/hw/virtio/virtio-balloon.c     2014-07-16 12:01:29.000000000 +0200
-@@ -309,6 +309,35 @@
+--- new.orig/hw/virtio/virtio-balloon.c        2014-11-20 06:45:06.000000000 +0100
++++ new/hw/virtio/virtio-balloon.c     2014-11-20 07:26:23.000000000 +0100
+@@ -314,6 +314,35 @@
      VirtIOBalloon *dev = opaque;
      info->actual = ram_size - ((uint64_t) dev->actual <<
                                 VIRTIO_BALLOON_PFN_SHIFT);
@@ -81,9 +81,9 @@ Index: new/hw/virtio/virtio-balloon.c
  static void virtio_balloon_to_target(void *opaque, ram_addr_t target)
 Index: new/qapi-schema.json
 ===================================================================
---- new.orig/qapi-schema.json  2014-07-16 11:53:56.000000000 +0200
-+++ new/qapi-schema.json       2014-07-16 12:01:29.000000000 +0200
-@@ -885,15 +885,34 @@
+--- new.orig/qapi-schema.json  2014-11-20 06:45:06.000000000 +0100
++++ new/qapi-schema.json       2014-11-20 07:26:23.000000000 +0100
+@@ -888,15 +888,34 @@
  
  ##
  # @BalloonInfo:
@@ -123,9 +123,9 @@ Index: new/qapi-schema.json
  # @query-balloon:
 Index: new/qmp-commands.hx
 ===================================================================
---- new.orig/qmp-commands.hx   2014-07-16 11:53:56.000000000 +0200
-+++ new/qmp-commands.hx        2014-07-16 12:01:29.000000000 +0200
-@@ -3235,6 +3235,13 @@
+--- new.orig/qmp-commands.hx   2014-11-20 06:45:06.000000000 +0100
++++ new/qmp-commands.hx        2014-11-20 07:26:23.000000000 +0100
+@@ -3234,6 +3234,13 @@
  json-object will be returned containing the following data:
  
  - "actual": current balloon value in bytes (json-int)
@@ -139,7 +139,7 @@ Index: new/qmp-commands.hx
  
  Example:
  
-@@ -3242,6 +3249,12 @@
+@@ -3241,6 +3248,12 @@
  <- {
        "return":{
           "actual":1073741824,
index 7abf0c669e047e7b177b4527ab47782827d0e25b..fe962256f5dfd1a0611c1715dad694aa0e82bb32 100644 (file)
Binary files a/qemu-kvm-src.tar.gz and b/qemu-kvm-src.tar.gz differ