From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:56230) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y5thU-0005KN-L9 for qemu-devel@nongnu.org; Tue, 30 Dec 2014 05:06:53 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1Y5thQ-0003XR-49 for qemu-devel@nongnu.org; Tue, 30 Dec 2014 05:06:52 -0500 Received: from mailhub.sw.ru ([195.214.232.25]:32009 helo=relay.sw.ru) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1Y5thP-0003XE-PQ for qemu-devel@nongnu.org; Tue, 30 Dec 2014 05:06:48 -0500 From: "Denis V. Lunev" Date: Tue, 30 Dec 2014 13:07:07 +0300 Message-Id: <1419934032-24216-5-git-send-email-den@openvz.org> In-Reply-To: <1419934032-24216-1-git-send-email-den@openvz.org> References: <1419931701-19362-1-git-send-email-den@openvz.org> <1419934032-24216-1-git-send-email-den@openvz.org> Subject: [Qemu-devel] [PATCH 14/19] block/parallels: create catalog_offset helper List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: Kevin Wolf , "Denis V. Lunev" , qemu-devel@nongnu.org, Stefan Hajnoczi to calculate entry offset inside catalog bitmap in parallels image. This is a matter of convinience. Signed-off-by: Denis V. Lunev CC: Kevin Wolf CC: Stefan Hajnoczi --- block/parallels.c | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/block/parallels.c b/block/parallels.c index f79ddff..d072276 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -67,6 +67,12 @@ typedef struct BDRVParallelsState { unsigned int off_multiplier; } BDRVParallelsState; + +static uint32_t catalog_offset(uint32_t index) +{ + return sizeof(ParallelsHeader) + sizeof(uint32_t) * index; +} + static int parallels_probe(const uint8_t *buf, int buf_size, const char *filename) { const ParallelsHeader *ph = (const void *)buf; @@ -188,8 +194,7 @@ static int64_t allocate_sector(BlockDriverState *bs, int64_t sector_num) tmp = cpu_to_le32(s->catalog_bitmap[idx]); - ret = bdrv_pwrite_sync(bs->file, - sizeof(ParallelsHeader) + idx * sizeof(tmp), &tmp, sizeof(tmp)); + ret = bdrv_pwrite_sync(bs->file, catalog_offset(idx), &tmp, sizeof(tmp)); if (ret < 0) { return ret; } @@ -342,8 +347,7 @@ static int parallels_create(const char *filename, QemuOpts *opts, Error **errp) } cat_entries = DIV_ROUND_UP(total_size, cl_size); - cat_sectors = DIV_ROUND_UP(cat_entries * sizeof(uint32_t) + - sizeof(ParallelsHeader), cl_size); + cat_sectors = DIV_ROUND_UP(catalog_offset(cat_entries), cl_size); cat_sectors = (cat_sectors * cl_size) >> BDRV_SECTOR_BITS; memset(&header, 0, sizeof(header)); -- 1.9.1