On 06/24/2010 01:47 PM, Daniel P. Berrange wrote:
> The patches for shared storage migration were not correctly written
> for json mode. Thus the 'blk' and 'inc' parameters were never being
> set. In addition they didn't set the QEMU_MONITOR_MIGRATE_BACKGROUND
> so migration was synchronous. Due to multiple bugs in QEMU's JSON
> impl this wasn't noticed because it treated the sync migration requst
> as asynchronous anyway. Finally 'background' parameter was converted
> to take arbitrary flags but not renamed, and not all uses were changed
> to unsigned int.
>
> * src/qemu/qemu_driver.c: Set QEMU_MONITOR_MIGRATE_BACKGROUND in
> doNativeMigrate
> * src/qemu/qemu_monitor_json.c: Process QEMU_MONITOR_MIGRATE_NON_SHARED_DISK
> and QEMU_MONITOR_MIGRATE_NON_SHARED_INC flags
> * src/qemu/qemu_monitor.c, src/qemu/qemu_monitor.h,
> src/qemu/qemu_monitor_json.h, src/qemu/qemu_monitor_text.c,
> src/qemu/qemu_monitor_text.h: change 'int background' to
> 'unsigned int flags' in migration APIs. Add logging of flags
> parameter
> ---
> src/qemu/qemu_driver.c | 2 +-
> src/qemu/qemu_monitor.c | 40 ++++++++++++++++++++--------------------
> src/qemu/qemu_monitor.h | 8 ++++----
> src/qemu/qemu_monitor_json.c | 29 ++++++++++++++++-------------
> src/qemu/qemu_monitor_json.h | 8 ++++----
> src/qemu/qemu_monitor_text.c | 24 ++++++++++++------------
> src/qemu/qemu_monitor_text.h | 8 ++++----
> 7 files changed, 61 insertions(+), 58 deletions(-)
>
> static int qemuMonitorJSONMigrate(qemuMonitorPtr mon,
> - int background,
> + unsigned int flags,
> const char *uri)
> {
> int ret;
> - virJSONValuePtr cmd = qemuMonitorJSONMakeCommand("migrate",
> - "i:detach", background
> ? 1 : 0,
> - "s:uri", uri,
> - NULL);
> + virJSONValuePtr cmd =
> + qemuMonitorJSONMakeCommand("migrate",
> + "i:detach", flags &
> QEMU_MONITOR_MIGRATE_BACKGROUND ? 1 : 0,
> + "i:blk", flags &
> QEMU_MONITOR_MIGRATE_NON_SHARED_DISK ? 1 : 0,
> + "i:inc", flags &
> QEMU_MONITOR_MIGRATE_NON_SHARED_INC ? 1 : 0,
> + "s:uri", uri,
> + NULL);ACK. -- Eric Blake [email protected] +1-801-349-2682 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature
-- libvir-list mailing list [email protected] https://www.redhat.com/mailman/listinfo/libvir-list
