[Devel] [PATCH vz9] dm-qcow2: enhance merge_backward progress reporting
Pavel Tikhomirov
ptikhomirov at virtuozzo.com
Tue Apr 22 09:56:03 MSK 2025
Reviewed-by: Pavel Tikhomirov <ptikhomirov at virtuozzo.com>
On 4/22/25 14:29, Andrey Zhadchenko wrote:
> - 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.zhadchenko at 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,
--
Best regards, Pavel Tikhomirov
Senior Software Developer, Virtuozzo.
More information about the Devel
mailing list