- Do not reset progress and maximum progress on every stage: userspace gets confused when it sees 0/0 on a ready stage. - Set progress one more time at the end of qcow2_service_iter(), as we reached the end successfully
https://virtuozzo.atlassian.net/browse/VSTOR-103508 Signed-off-by: Andrey Zhadchenko <andrey.zhadche...@virtuozzo.com> --- drivers/md/dm-qcow2-cmd.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/drivers/md/dm-qcow2-cmd.c b/drivers/md/dm-qcow2-cmd.c index 89828f64cfe3..e77052ad61e6 100644 --- a/drivers/md/dm-qcow2-cmd.c +++ b/drivers/md/dm-qcow2-cmd.c @@ -111,6 +111,7 @@ static int qcow2_service_iter(struct qcow2_target *tgt, struct qcow2 *qcow2, ret = blk_status_to_errno(READ_ONCE(service_status)); } + backward_merge_update_progress(tgt, (pos > end) ? end : pos); return ret; } ALLOW_ERROR_INJECTION(qcow2_service_iter, ERRNO); @@ -178,8 +179,10 @@ static void __backward_merge_update_stage(struct qcow2_target *tgt, enum qcow2_backward_merge_stage stage) { tgt->backward_merge.stage = stage; - tgt->backward_merge.progress = 0; - tgt->backward_merge.max_progress = 0; + if (stage == BACKWARD_MERGE_STAGE_START) { + tgt->backward_merge.progress = 0; + tgt->backward_merge.max_progress = 0; + } } static void backward_merge_update_stage(struct qcow2_target *tgt, -- 2.43.0 _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel