Patchwork [7/7] block: update in-memory backing file and format

login
register
mail settings
Submitter Paolo Bonzini
Date April 5, 2012, 3:43 p.m.
Message ID <1333640581-25649-8-git-send-email-pbonzini@redhat.com>
Download mbox | patch
Permalink /patch/151032/
State New
Headers show

Comments

Paolo Bonzini - April 5, 2012, 3:43 p.m.
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 <pbonzini@redhat.com>
---
 block.c |   11 +++++++++--
 1 file changed, 9 insertions(+), 2 deletions(-)

Patch

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,