If a BlockDriverState is growable, after every write we need to check if bs->total_sectors might have changed.
Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> --- block.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/block.c b/block.c index 6cd39fa..ebac2fa 100644 --- a/block.c +++ b/block.c @@ -2651,6 +2651,9 @@ static int coroutine_fn bdrv_co_do_writev(BlockDriverState *bs, if (bs->wr_highest_sector < sector_num + nb_sectors - 1) { bs->wr_highest_sector = sector_num + nb_sectors - 1; } + if (bs->growable && ret >= 0) { + bs->total_sectors = MAX(bs->total_sectors, sector_num + nb_sectors); + } tracked_request_end(&req); -- 1.8.3.1