From: Klim Kireev <klim.kir...@virtuozzo.com> Signed-off-by: Klim Kireev <klim.kir...@virtuozzo.com> Reviewed-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> Signed-off-by: Denis V. Lunev <d...@openvz.org> CC: Stefan Hajnoczi <stefa...@redhat.com> --- block/parallels.h | 2 ++ block/parallels.c | 5 +++-- 2 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/block/parallels.h b/block/parallels.h index 7d0fb73..9be29fe 100644 --- a/block/parallels.h +++ b/block/parallels.h @@ -31,6 +31,8 @@ #define BLOCK_PARALLELS_H #include "qemu/module.h" +#define HEADS_NUMBER 16 +#define SEC_IN_CYL 32 #define DEFAULT_CLUSTER_SIZE 1048576 /* 1 MiB */ /* always little-endian */ diff --git a/block/parallels.c b/block/parallels.c index f9a3b99..7a8e8b0 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -476,8 +476,9 @@ static int parallels_create(const char *filename, QemuOpts *opts, Error **errp) memcpy(header.magic, HEADER_MAGIC2, sizeof(header.magic)); header.version = cpu_to_le32(HEADER_VERSION); /* don't care much about geometry, it is not used on image level */ - header.heads = cpu_to_le32(16); - header.cylinders = cpu_to_le32(total_size / BDRV_SECTOR_SIZE / 16 / 32); + header.heads = cpu_to_le32(HEADS_NUMBER); + header.cylinders = cpu_to_le32(total_size / BDRV_SECTOR_SIZE + / HEADS_NUMBER / SEC_IN_CYL); header.tracks = cpu_to_le32(cl_size >> BDRV_SECTOR_BITS); header.bat_entries = cpu_to_le32(bat_entries); header.nb_sectors = cpu_to_le64(DIV_ROUND_UP(total_size, BDRV_SECTOR_SIZE)); -- 2.7.4