From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59846) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRse-0001VK-Qi for qemu-devel@nongnu.org; Thu, 10 May 2012 07:50:05 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSRsY-0006Fq-N6 for qemu-devel@nongnu.org; Thu, 10 May 2012 07:50:00 -0400 Received: from mx1.redhat.com ([209.132.183.28]:16269) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRsY-0006FC-FF for qemu-devel@nongnu.org; Thu, 10 May 2012 07:49:54 -0400 From: Kevin Wolf Date: Thu, 10 May 2012 13:49:18 +0200 Message-Id: <1336650574-12835-15-git-send-email-kwolf@redhat.com> In-Reply-To: <1336650574-12835-1-git-send-email-kwolf@redhat.com> References: <1336650574-12835-1-git-send-email-kwolf@redhat.com> Subject: [Qemu-devel] [PATCH 14/30] block: fully delete bs->file when closing List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: anthony@codemonkey.ws Cc: kwolf@redhat.com, qemu-devel@nongnu.org From: Paolo Bonzini 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 files changed, 2 insertions(+), 4 deletions(-) diff --git a/block.c b/block.c index 271f109..6154c3f 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); -- 1.7.6.5