diff options
author | Stefan Hajnoczi <stefanha@redhat.com> | 2013-06-27 15:32:26 +0200 |
---|---|---|
committer | Michael Roth <mdroth@linux.vnet.ibm.com> | 2013-09-24 16:31:10 -0500 |
commit | 670599a08c052f6ef841743731a8f06d4b50ec99 (patch) | |
tree | 6f0fc6e1036fb045d4ac2ae2f13826c4de98cfd0 /block.c | |
parent | 1ee2daeb6448312d6d0e22175f5c1b9b01f8974c (diff) | |
download | qemu-670599a08c052f6ef841743731a8f06d4b50ec99.tar.gz |
block: ensure bdrv_drain_all() works during bdrv_delete()
In bdrv_delete() make sure to call bdrv_make_anon() *after* bdrv_close()
so that the device is still seen by bdrv_drain_all() when iterating
bdrv_states.
Cc: qemu-stable@nongnu.org
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
(cherry picked from commit e1b5c52e04d04bb93546c6e37e8884889d047cb1)
Signed-off-by: Michael Roth <mdroth@linux.vnet.ibm.com>
Diffstat (limited to 'block.c')
-rw-r--r-- | block.c | 4 |
1 files changed, 2 insertions, 2 deletions
@@ -1606,11 +1606,11 @@ void bdrv_delete(BlockDriverState *bs) assert(!bs->job); assert(!bs->in_use); + bdrv_close(bs); + /* remove from list, if necessary */ bdrv_make_anon(bs); - bdrv_close(bs); - g_free(bs); } |