From 0ac9377d043e03350b1ff8e21b927598c02fc7fb Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 8 May 2012 16:51:44 +0200 Subject: [PATCH] block: fully delete bs->file when closing We are reusing bs->file across close/open, which may not cause any known bugs but is a recipe for trouble. Prefer bdrv_delete, and enjoy the new invariant in the implementation of bdrv_delete. Signed-off-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- block.c | 6 ++---- 1 file changed, 2 insertions(+), 4 deletions(-) diff --git a/block.c b/block.c index 271f109cbe..6154c3fec0 100644 --- a/block.c +++ b/block.c @@ -882,7 +882,8 @@ void bdrv_close(BlockDriverState *bs) bs->backing_format[0] = '\0'; if (bs->file != NULL) { - bdrv_close(bs->file); + bdrv_delete(bs->file); + bs->file = NULL; } bdrv_dev_change_media_cb(bs, false); @@ -1062,9 +1063,6 @@ void bdrv_delete(BlockDriverState *bs) bdrv_make_anon(bs); bdrv_close(bs); - if (bs->file != NULL) { - bdrv_delete(bs->file); - } assert(bs != bs_snapshots); g_free(bs); -- 2.11.4.GIT