From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:59725) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRsV-00010q-8F for qemu-devel@nongnu.org; Thu, 10 May 2012 07:49:59 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SSRsO-0006Bl-Ol for qemu-devel@nongnu.org; Thu, 10 May 2012 07:49:50 -0400 Received: from mx1.redhat.com ([209.132.183.28]:59307) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SSRsO-0006BM-Gi for qemu-devel@nongnu.org; Thu, 10 May 2012 07:49:44 -0400 From: Kevin Wolf Date: Thu, 10 May 2012 13:49:09 +0200 Message-Id: <1336650574-12835-6-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 05/30] block: update in-memory backing file and format 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 These are needed to print "info block" output correctly. QCOW2 does this because it needs it to write the header, but QED does not, and common code is the right place to do it. Reviewed-by: Kevin Wolf Signed-off-by: Paolo Bonzini Signed-off-by: Kevin Wolf --- block.c | 11 +++++++++-- block/stream.c | 11 ----------- 2 files changed, 9 insertions(+), 13 deletions(-) diff --git a/block.c b/block.c index 068e41d..dbd60e3 100644 --- a/block.c +++ b/block.c @@ -1459,6 +1459,7 @@ int bdrv_change_backing_file(BlockDriverState *bs, const char *backing_file, const char *backing_fmt) { BlockDriver *drv = bs->drv; + int ret; /* Backing file format doesn't make sense without a backing file */ if (backing_fmt && !backing_file) { @@ -1466,10 +1467,16 @@ int bdrv_change_backing_file(BlockDriverState *bs, } if (drv->bdrv_change_backing_file != NULL) { - return drv->bdrv_change_backing_file(bs, backing_file, backing_fmt); + ret = drv->bdrv_change_backing_file(bs, backing_file, backing_fmt); } else { - return -ENOTSUP; + ret = -ENOTSUP; + } + + if (ret == 0) { + pstrcpy(bs->backing_file, sizeof(bs->backing_file), backing_file ?: ""); + pstrcpy(bs->backing_format, sizeof(bs->backing_format), backing_fmt ?: ""); } + return ret; } static int bdrv_check_byte_request(BlockDriverState *bs, int64_t offset, diff --git a/block/stream.c b/block/stream.c index 6724af2..b7e1ad4 100644 --- a/block/stream.c +++ b/block/stream.c @@ -96,17 +96,6 @@ static void close_unused_images(BlockDriverState *top, BlockDriverState *base, bdrv_delete(unused); } top->backing_hd = base; - - pstrcpy(top->backing_file, sizeof(top->backing_file), ""); - pstrcpy(top->backing_format, sizeof(top->backing_format), ""); - if (base_id) { - pstrcpy(top->backing_file, sizeof(top->backing_file), base_id); - if (base->drv) { - pstrcpy(top->backing_format, sizeof(top->backing_format), - base->drv->format_name); - } - } - } /* -- 1.7.6.5