Message ID | 1447779778-26062-1-git-send-email-den@openvz.org |
---|---|
State | New |
Headers | show |
On 11/17/2015 08:02 PM, Denis V. Lunev wrote: > From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > > 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 <vsementsov@virtuozzo.com> > Signed-off-by: Denis V. Lunev <den@openvz.org> > CC: Stefan Hajnoczi <stefanha@redhat.com> > --- > block/parallels.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/block/parallels.c b/block/parallels.c > index 4f79293..f689fde 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; Stefan, how should we proceed with this? Should I send this as a pull request or you could take this yourself? Den
On Tue, Nov 17, 2015 at 08:02:58PM +0300, Denis V. Lunev wrote: > From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> > > 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 <vsementsov@virtuozzo.com> > Signed-off-by: Denis V. Lunev <den@openvz.org> > CC: Stefan Hajnoczi <stefanha@redhat.com> > --- > block/parallels.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) Thanks, applied to my block tree: https://github.com/stefanha/qemu/commits/block Stefan
diff --git a/block/parallels.c b/block/parallels.c index 4f79293..f689fde 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;