block/get_block_status: set *pnum = 0 on error
authorPeter Lieven <pl@kamp.de>
Tue, 24 Sep 2013 13:35:08 +0000 (15:35 +0200)
committerKevin Wolf <kwolf@redhat.com>
Wed, 25 Sep 2013 08:08:56 +0000 (10:08 +0200)
if the call is invoked through bdrv_is_allocated the caller might
expect *pnum = 0 on error. however, a new implementation of
bdrv_get_block_status might only return a negative exit value on
error while keeping *pnum untouched.

Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Peter Lieven <pl@kamp.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
block.c

diff --git a/block.c b/block.c
index b383b72..9b444b3 100644 (file)
--- a/block.c
+++ b/block.c
@@ -3162,6 +3162,7 @@ static int64_t coroutine_fn bdrv_co_get_block_status(BlockDriverState *bs,
 
     ret = bs->drv->bdrv_co_get_block_status(bs, sector_num, nb_sectors, pnum);
     if (ret < 0) {
+        *pnum = 0;
         return ret;
     }