From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:44277) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvgoG-0006r9-GB for qemu-devel@nongnu.org; Mon, 09 Nov 2015 02:24:13 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1ZvgoC-0002ZV-IV for qemu-devel@nongnu.org; Mon, 09 Nov 2015 02:24:12 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:41269 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1ZvgoC-0002Z6-7E for qemu-devel@nongnu.org; Mon, 09 Nov 2015 02:24:08 -0500 From: "Denis V. Lunev" Date: Mon, 9 Nov 2015 10:24:04 +0300 Message-Id: <1447053844-18102-1-git-send-email-den@openvz.org> In-Reply-To: <563E16AF.8070209@openvz.org> References: <563E16AF.8070209@openvz.org> Subject: [Qemu-devel] [PATCH for 2.5 v2 1/1] migration: qemu_savevm_state_cleanup becomes mandatory operation List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Amit Shah , "Denis V. Lunev" , Juan Quintela , qemu-devel@nongnu.org, Paolo Bonzini since commit commit 94f5a43704129ca4995aa3385303c5ae225bde42 Author: Liang Li 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 Reviewed-by: Liang Li CC: Paolo Bonzini CC: Juan Quintela CC: Amit Shah --- migration/savevm.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/migration/savevm.c b/migration/savevm.c index e05158d..9f2230f 100644 --- a/migration/savevm.c +++ b/migration/savevm.c @@ -942,8 +942,8 @@ static int qemu_savevm_state(QEMUFile *f, Error **errp) qemu_savevm_state_complete(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; -- 2.1.4