vdi: Make block_status recurse for fixed images
authorMax Reitz <mreitz@redhat.com>
Thu, 25 Jul 2019 15:55:10 +0000 (17:55 +0200)
committerMax Reitz <mreitz@redhat.com>
Mon, 19 Aug 2019 15:13:26 +0000 (17:13 +0200)
Suggested-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Fixes: 69f47505ee66afaa513305de0c1895a224e52c45
Signed-off-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190725155512.9827-2-mreitz@redhat.com
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: John Snow <jsnow@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/vdi.c

index 0caa3f281d262f2dcb00a8d13d28f7cfb7ea20b0..806ba7f53c7b706ff3f4523fe3d7041b96cbcd5d 100644 (file)
@@ -542,7 +542,8 @@ static int coroutine_fn vdi_co_block_status(BlockDriverState *bs,
     *map = s->header.offset_data + (uint64_t)bmap_entry * s->block_size +
         index_in_block;
     *file = bs->file->bs;
-    return BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID;
+    return BDRV_BLOCK_DATA | BDRV_BLOCK_OFFSET_VALID |
+        (s->header.image_type == VDI_TYPE_STATIC ? BDRV_BLOCK_RECURSE : 0);
 }
 
 static int coroutine_fn