diff options
author | Denis V. Lunev <den@openvz.org> | 2015-11-09 10:24:04 +0300 |
---|---|---|
committer | Juan Quintela <quintela@redhat.com> | 2015-11-10 15:00:28 +0100 |
commit | 15b3b8eaae8dbcc903bb164311ea0066c77536a7 (patch) | |
tree | c43b14910a4b996b350a0e952b773988b5f00662 /migration | |
parent | 371ff5a3f04cd7d05bab49ac6e80da319026d95b (diff) | |
download | qemu-15b3b8eaae8dbcc903bb164311ea0066c77536a7.zip qemu-15b3b8eaae8dbcc903bb164311ea0066c77536a7.tar.gz qemu-15b3b8eaae8dbcc903bb164311ea0066c77536a7.tar.bz2 |
migration: qemu_savevm_state_cleanup becomes mandatory operation
since commit
commit 94f5a43704129ca4995aa3385303c5ae225bde42
Author: Liang Li <liang.z.li@intel.com>
Date: Mon Nov 2 15:37:00 2015 +0800
migration: defer migration_end & blk_mig_cleanup
when actual .cleanup callbacks calling was removed from complete operations.
The patch fixes regression introduced by the commit above results in
100% reliable assert for virtio-scsi VM with iothreads enabled during
'virsh create-snapshot' operation:
assert(i != mr->ioeventfd_nb);
memory_region_del_eventfd
virtio_pci_set_host_notifier_internal
virtio_pci_set_host_notifier
virtio_scsi_dataplane_start
virtio_scsi_handle_cmd
virtio_queue_notify_vq
virtio_queue_host_notifier_read
aio_dispatch
Signed-off-by: Denis V. Lunev <den@openvz.org>
Reviewed-by: Liang Li <liang.z.li@intel.com>
Reviewed-by: Juan Quintela <quintela@redhat.com>
CC: Paolo Bonzini <pbonzini@redhat.com>
CC: Juan Quintela <quintela@redhat.com>
CC: Amit Shah <amit.shah@redhat.com>
Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'migration')
-rw-r--r-- | migration/savevm.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/migration/savevm.c b/migration/savevm.c index 0596f7b..be52314 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -1179,8 +1179,8 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp) qemu_savevm_state_complete_precopy(f); ret = qemu_file_get_error(f); } + qemu_savevm_state_cleanup(); if (ret != 0) { - qemu_savevm_state_cleanup(); error_setg_errno(errp, -ret, "Error while writing VM state"); } return ret; |