From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([208.118.235.92]:58015) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFoqe-0000wv-Gw for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:43:53 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1SFoqV-0005Yl-8k for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:43:42 -0400 Received: from mail-pz0-f46.google.com ([209.85.210.46]:34338) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1SFoqV-0005WY-0D for qemu-devel@nongnu.org; Thu, 05 Apr 2012 11:43:35 -0400 Received: by mail-pz0-f46.google.com with SMTP id z9so2115338dad.33 for ; Thu, 05 Apr 2012 08:43:30 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Thu, 5 Apr 2012 17:43:01 +0200 Message-Id: <1333640581-25649-8-git-send-email-pbonzini@redhat.com> In-Reply-To: <1333640581-25649-1-git-send-email-pbonzini@redhat.com> References: <1333640581-25649-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 7/7] block: update in-memory backing file and format List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org These are needed to print "info block" output correctly. QCOW2 does this already because it needs it to write the header, but QED does not, and common code is a better place to do it. Signed-off-by: Paolo Bonzini --- block.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/block.c b/block.c index e293882..afff23f 100644 --- a/block.c +++ b/block.c @@ -1402,6 +1402,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) { @@ -1409,10 +1410,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, -- 1.7.9.3