aboutsummaryrefslogtreecommitdiff
path: root/savevm.c
diff options
context:
space:
mode:
authorPaolo Bonzini <pbonzini@redhat.com>2013-02-22 17:36:28 +0100
committerJuan Quintela <quintela@redhat.com>2013-03-11 13:32:01 +0100
commit9b0950375277467fd74a9075624477ae43b9bb22 (patch)
tree32a7a3d94d8db23346accf8db5803a2bb508f020 /savevm.c
parent32c835ba3984728c22d4e73cdb595090a60f437e (diff)
downloadqemu-9b0950375277467fd74a9075624477ae43b9bb22.zip
qemu-9b0950375277467fd74a9075624477ae43b9bb22.tar.gz
qemu-9b0950375277467fd74a9075624477ae43b9bb22.tar.bz2
migration: run setup callbacks out of big lock
Only the migration_bitmap_sync() call needs the iothread lock. Reviewed-by: Orit Wasserman <owasserm@redhat.com> Reviewed-by: Juan Quintela <quintela@redhat.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com> Signed-off-by: Juan Quintela <quintela@redhat.com>
Diffstat (limited to 'savevm.c')
-rw-r--r--savevm.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/savevm.c b/savevm.c
index e10a045..7c7774e 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1768,7 +1768,10 @@ static int qemu_savevm_state(QEMUFile *f)
return -EINVAL;
}
+ qemu_mutex_unlock_iothread();
qemu_savevm_state_begin(f, &params);
+ qemu_mutex_lock_iothread();
+
while (qemu_file_get_error(f) == 0) {
if (qemu_savevm_state_iterate(f) > 0) {
break;