diff options
author | Wen Congyang <wency@cn.fujitsu.com> | 2015-11-20 17:34:38 +0800 |
---|---|---|
committer | Paolo Bonzini <pbonzini@redhat.com> | 2015-11-26 16:47:44 +0100 |
commit | b2780d325306dc80ec07db9c0c61e9b2ac10e559 (patch) | |
tree | e286436a71df1e7782ee69420900ea84bf328df1 /cpus.c | |
parent | 2b1641d0a2fc10bdbffb1c0aa9836186af008766 (diff) |
call bdrv_drain_all() even if the vm is stopped
There are still I/O operations when the vm is stopped. For example,
stop the vm, and do block migration. In this case, we don't drain all
I/O operation, and may meet the following problem:
qemu-system-x86_64: migration/block.c:731: block_save_complete: Assertion `block_mig_state.submitted == 0' failed.
Signed-off-by: Wen Congyang <wency@cn.fujitsu.com>
Message-Id: <564EE92E.4070701@cn.fujitsu.com>
Cc: qemu-stable@nongnu.org
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'cpus.c')
-rw-r--r-- | cpus.c | 2 |
1 files changed, 2 insertions, 0 deletions
@@ -1415,6 +1415,8 @@ int vm_stop_force_state(RunState state) return vm_stop(state); } else { runstate_set(state); + + bdrv_drain_all(); /* Make sure to return an error if the flush in a previous vm_stop() * failed. */ return bdrv_flush_all(); |