From: Vladimir Sementsov-Ogievskiy Date: Tue, 17 Nov 2015 17:02:58 +0000 (+0300) Subject: parallels: dirty BAT properly for continuous allocations X-Git-Tag: v2.5.0-rc2~13^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c9f6856ded10602147ca1d1806e7afb545430fd9;p=thirdparty%2Fqemu.git parallels: dirty BAT properly for continuous allocations This patch marks part of the BAT dirty properly. There is a possibility that multy-block allocation could have one block allocated on one BAT page and next block on the next page. The code without the patch could not save updated position to the file. Signed-off-by: Vladimir Sementsov-Ogievskiy Signed-off-by: Denis V. Lunev Message-id: 1447779778-26062-1-git-send-email-den@openvz.org CC: Stefan Hajnoczi Signed-off-by: Stefan Hajnoczi --- diff --git a/block/parallels.c b/block/parallels.c index 4f79293826b..f689fdeaffc 100644 --- a/block/parallels.c +++ b/block/parallels.c @@ -220,7 +220,7 @@ static int64_t allocate_clusters(BlockDriverState *bs, int64_t sector_num, s->bat_bitmap[idx + i] = cpu_to_le32(s->data_end / s->off_multiplier); s->data_end += s->tracks; bitmap_set(s->bat_dirty_bmap, - bat_entry_off(idx) / s->bat_dirty_block, 1); + bat_entry_off(idx + i) / s->bat_dirty_block, 1); } return bat2sect(s, idx) + sector_num % s->tracks;