From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59902) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRsj-0001kM-A3 for qemu-devel@nongnu.org; Thu, 10 May 2012 07:50:10 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSRse-0006IC-GH for qemu-devel@nongnu.org; Thu, 10 May 2012 07:50:04 -0400 Received: from mx1.redhat.com ([209.132.183.28]:60650) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRse-0006Hc-8B for qemu-devel@nongnu.org; Thu, 10 May 2012 07:50:00 -0400 From: Kevin Wolf Date: Thu, 10 May 2012 13:49:23 +0200 Message-Id: <1336650574-12835-20-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 19/30] block: move field reset from bdrv_open_common to bdrv_close 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 bdrv_close should leave fields in the same state as bdrv_new. It is not up to bdrv_open_common to fix the mess. Also, backing_format was not being re-initialized. Signed-off-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- block.c | 13 ++++++------- 1 files changed, 6 insertions(+), 7 deletions(-) diff --git a/block.c b/block.c index 8eeb519..2986998 100644 --- a/block.c +++ b/block.c @@ -610,16 +610,11 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename, int ret, open_flags; assert(drv != NULL); + assert(bs->file == NULL); trace_bdrv_open_common(bs, filename, flags, drv->format_name); - bs->file = NULL; - bs->total_sectors = 0; - bs->encrypted = 0; - bs->valid_key = 0; - bs->sg = 0; bs->open_flags = flags; - bs->growable = 0; bs->buffer_alignment = 512; assert(bs->copy_on_read == 0); /* bdrv_new() and bdrv_close() make it so */ @@ -628,7 +623,6 @@ static int bdrv_open_common(BlockDriverState *bs, const char *filename, } pstrcpy(bs->filename, sizeof(bs->filename), filename); - bs->backing_file[0] = '\0'; if (use_bdrv_whitelist && !bdrv_is_whitelisted(drv)) { return -ENOTSUP; @@ -878,6 +872,11 @@ void bdrv_close(BlockDriverState *bs) bs->copy_on_read = 0; bs->backing_file[0] = '\0'; bs->backing_format[0] = '\0'; + bs->total_sectors = 0; + bs->encrypted = 0; + bs->valid_key = 0; + bs->sg = 0; + bs->growable = 0; if (bs->file != NULL) { bdrv_delete(bs->file); -- 1.7.6.5