block: Round up total_sectors

Since b94a2610, bdrv_getlength() is omitted when probing image. VMDK
monolithicFlat is broken by that because a file < 512 bytes can't be
read with its total_sectors truncated to 0. This patch round up the size
to BDRV_SECTOR_SIZE, when a image size is not sector aligned.

Signed-off-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Benoit Canet <benoit@irqsave.net>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
This commit is contained in:
Fam Zheng 2013-11-06 19:48:06 +08:00 committed by Stefan Hajnoczi
parent e78835b722
commit 7e382003f1

View File

@ -640,7 +640,7 @@ static int refresh_total_sectors(BlockDriverState *bs, int64_t hint)
if (length < 0) { if (length < 0) {
return length; return length;
} }
hint = length >> BDRV_SECTOR_BITS; hint = DIV_ROUND_UP(length, BDRV_SECTOR_SIZE);
} }
bs->total_sectors = hint; bs->total_sectors = hint;