File 0099-qemu-use-bdrv_flush_all-for-vm_stop.patch of Package qemu.5749
From 93b59b921442ffbbae059e7d46e18d959620e3d2 Mon Sep 17 00:00:00 2001
From: John Snow <jsnow@redhat.com>
Date: Thu, 22 Sep 2016 21:45:51 -0400
Subject: [PATCH] qemu: use bdrv_flush_all for vm_stop et al
Reimplement bdrv_flush_all for vm_stop. In contrast to blk_flush_all,
bdrv_flush_all does not have device model restrictions. This allows
us to flush and halt unconditionally without error.
This allows us to do things like migrate when we have a device with
an open tray, but has a node that may need to be flushed, or nodes
that aren't currently attached to any device and need to be flushed.
Specifically, this allows us to migrate when we have a CDROM with
an open tray.
Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Acked-by: Fam Zheng <famz@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
(cherry picked from commit 22af08eacf6b5aa0e6c0581e547380b3eb4f95e9)
[BR: BSC#1013341]
Signed-off-by: Bruce Rogers <brogers@suse.com>
---
cpus.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/cpus.c b/cpus.c
index cbeb1f6139..1421a35c49 100644
--- a/cpus.c
+++ b/cpus.c
@@ -743,7 +743,7 @@ static int do_vm_stop(RunState state)
}
bdrv_drain_all();
- ret = blk_flush_all();
+ ret = bdrv_flush_all();
return ret;
}
@@ -1442,7 +1442,7 @@ int vm_stop_force_state(RunState state)
bdrv_drain_all();
/* Make sure to return an error if the flush in a previous vm_stop()
* failed. */
- return blk_flush_all();
+ return bdrv_flush_all();
}
}