From 141cdcdf84a07c8f23f8b1c4e3c5ebb0669f7616 Mon Sep 17 00:00:00 2001 From: John Snow Date: Mon, 29 Jul 2019 16:35:55 -0400 Subject: [PATCH] block/backup: centralize copy_bitmap initialization Just a few housekeeping changes that keeps the following commit easier to read; perform the initial copy_bitmap initialization in one place. Signed-off-by: John Snow Reviewed-by: Max Reitz Message-id: 20190716000117.25219-8-jsnow@redhat.com Signed-off-by: John Snow --- block/backup.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/block/backup.c b/block/backup.c index b04ab2d5f0..305f9b3468 100644 --- a/block/backup.c +++ b/block/backup.c @@ -451,16 +451,22 @@ static int coroutine_fn backup_loop(BackupBlockJob *job) return ret; } -/* init copy_bitmap from sync_bitmap */ -static void backup_incremental_init_copy_bitmap(BackupBlockJob *job) +static void backup_init_copy_bitmap(BackupBlockJob *job) { - bool ret = bdrv_dirty_bitmap_merge_internal(job->copy_bitmap, - job->sync_bitmap, - NULL, true); - assert(ret); + bool ret; + uint64_t estimate; + + if (job->sync_mode == MIRROR_SYNC_MODE_BITMAP) { + ret = bdrv_dirty_bitmap_merge_internal(job->copy_bitmap, + job->sync_bitmap, + NULL, true); + assert(ret); + } else { + bdrv_set_dirty_bitmap(job->copy_bitmap, 0, job->len); + } - job_progress_set_remaining(&job->common.job, - bdrv_get_dirty_count(job->copy_bitmap)); + estimate = bdrv_get_dirty_count(job->copy_bitmap); + job_progress_set_remaining(&job->common.job, estimate); } static int coroutine_fn backup_run(Job *job, Error **errp) @@ -472,12 +478,7 @@ static int coroutine_fn backup_run(Job *job, Error **errp) QLIST_INIT(&s->inflight_reqs); qemu_co_rwlock_init(&s->flush_rwlock); - if (s->sync_mode == MIRROR_SYNC_MODE_BITMAP) { - backup_incremental_init_copy_bitmap(s); - } else { - bdrv_set_dirty_bitmap(s->copy_bitmap, 0, s->len); - job_progress_set_remaining(job, s->len); - } + backup_init_copy_bitmap(s); s->before_write.notify = backup_before_write_notify; bdrv_add_before_write_notifier(bs, &s->before_write); -- 2.11.4.GIT