summaryrefslogtreecommitdiff
path: root/block.c
diff options
context:
space:
mode:
authorFam Zheng <famz@redhat.com>2013-11-06 19:48:06 +0800
committerStefan Hajnoczi <stefanha@redhat.com>2013-11-08 10:44:24 +0100
commit7e382003f1bd9d8a441ecc5ac8a74bad3564d943 (patch)
treea2f2a09ee32f8e9be3073c6d3d17ba4932d5d63a /block.c
parente78835b722eb26f5a56370166e99b69e9751ea2a (diff)
downloadqemu-7e382003f1bd9d8a441ecc5ac8a74bad3564d943.tar.gz
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>
Diffstat (limited to 'block.c')
-rw-r--r--block.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block.c b/block.c
index 0e96a223a6..6d5c80475c 100644
--- a/block.c
+++ b/block.c
@@ -640,7 +640,7 @@ static int refresh_total_sectors(BlockDriverState *bs, int64_t hint)
if (length < 0) {
return length;
}
- hint = length >> BDRV_SECTOR_BITS;
+ hint = DIV_ROUND_UP(length, BDRV_SECTOR_SIZE);
}
bs->total_sectors = hint;