block: Request block status from *file for BDRV_BLOCK_RAW
authorKevin Wolf <kwolf@redhat.com>
Wed, 8 Mar 2017 14:02:49 +0000 (15:02 +0100)
committerKevin Wolf <kwolf@redhat.com>
Mon, 13 Mar 2017 11:49:33 +0000 (12:49 +0100)
This fixes bdrv_co_get_block_status() for the bdrv_mirror_top block
driver, which must fall through to bs->backing instead of bs->file.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
block/io.c

index 8f38d46de008297f6ea453da38f0d17c21ae5dbb..2709a7007fb0e23367a9e8a5b09853fa3f6eb8d8 100644 (file)
@@ -1760,7 +1760,7 @@ static int64_t coroutine_fn bdrv_co_get_block_status(BlockDriverState *bs,
 
     if (ret & BDRV_BLOCK_RAW) {
         assert(ret & BDRV_BLOCK_OFFSET_VALID);
-        ret = bdrv_get_block_status(bs->file->bs, ret >> BDRV_SECTOR_BITS,
+        ret = bdrv_get_block_status(*file, ret >> BDRV_SECTOR_BITS,
                                     *pnum, pnum, file);
         goto out;
     }