On Thu, 05/04 12:37, Eric Blake wrote: > Since we are already in coroutine context during the body of > bdrv_co_get_block_status(), we can shave off a few layers of > wrappers when recursing to query the protocol when a format driver > returned BDRV_BLOCK_RAW. > > Note that we are already using the correct recursion later on in > the same function, when probing whether the protocol layer is sparse > in order to find out if we can add BDRV_BLOCK_ZERO to an existing > BDRV_BLOCK_DATA|BDRV_BLOCK_OFFSET_VALID. > > Signed-off-by: Eric Blake <ebl...@redhat.com> > --- > block/io.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) > > diff --git a/block/io.c b/block/io.c > index 40bd94f..fdd7485 100644 > --- a/block/io.c > +++ b/block/io.c > @@ -1784,8 +1784,8 @@ 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(*file, ret >> BDRV_SECTOR_BITS, > - *pnum, pnum, file); > + ret = bdrv_co_get_block_status(*file, ret >> BDRV_SECTOR_BITS, > + *pnum, pnum, file); > goto out; > } > > -- > 2.9.3 > >
Reviewed-by: Fam Zheng <f...@redhat.com>