On 02/02/2017 08:25 AM, Denis V. Lunev wrote: > From: Anton Nefedov <anton.nefe...@virtuozzo.com> > > If explicit zeroing out before mirroring is required for the target image, > it moves the block job offset counter to EOF, then offset and len counters > count the image size twice. There is no harm but stats are confusing, > specifically the progress of the operation is always reported as 99% by > management tools. > > The patch skips offset increase for the first "technical" pass over the > image. This should not cause any further harm. > > Signed-off-by: Anton Nefedov <anton.nefe...@virtuozzo.com> > Signed-off-by: Denis V. Lunev <d...@openvz.org> > CC: Jeff Cody <jc...@redhat.com> > CC: Kevin Wolf <kw...@redhat.com> > CC: Max Reitz <mre...@redhat.com> > CC: Eric Blake <ebl...@redhat.com> > ---
> + bool initial_zeroing_ongoing; Long name. With a bit of bikeshedding, I might have used 'init_pass' for a shorter name (particularly if some later patch introduces another aspect of initialization that is not zeroing but is worth ignoring with respects to progress reporting). > } MirrorBlockJob; > > typedef struct MirrorOp { > @@ -117,9 +118,10 @@ static void mirror_iteration_done(MirrorOp *op, int ret) > if (s->cow_bitmap) { > bitmap_set(s->cow_bitmap, chunk_num, nb_chunks); > } > - s->common.offset += (uint64_t)op->nb_sectors * BDRV_SECTOR_SIZE; > + if (!s->initial_zeroing_ongoing) { > + s->common.offset += (uint64_t)op->nb_sectors * BDRV_SECTOR_SIZE; > + } > } > - > qemu_iovec_destroy(&op->qiov); Why are you deleting the blank line? Other than naming, the patch looks reasonable. If you spin a v3 with only the name changed, you can add: Reviewed-by: Eric Blake <ebl...@redhat.com> -- Eric Blake eblake redhat com +1-919-301-3266 Libvirt virtualization library http://libvirt.org
signature.asc
Description: OpenPGP digital signature