aboutsummaryrefslogtreecommitdiff
path: root/block.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2013-06-27 15:32:26 +0200
committerStefan Hajnoczi <stefanha@redhat.com>2013-08-19 15:45:34 +0200
commite1b5c52e04d04bb93546c6e37e8884889d047cb1 (patch)
tree166141d7d610a7e2663c7286f0c39039a8eea90b /block.c
parentf202039811d8746b0586d2fd5f61de6c8cf68056 (diff)
downloadqemu-e1b5c52e04d04bb93546c6e37e8884889d047cb1.zip
qemu-e1b5c52e04d04bb93546c6e37e8884889d047cb1.tar.gz
qemu-e1b5c52e04d04bb93546c6e37e8884889d047cb1.tar.bz2
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>
Diffstat (limited to 'block.c')
-rw-r--r--block.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/block.c b/block.c
index 01b66d8..d5ce8d3 100644
--- a/block.c
+++ b/block.c
@@ -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);
}