mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-06 01:03:55 -06:00
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 <jsnow@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 20190716000117.25219-8-jsnow@redhat.com Signed-off-by: John Snow <jsnow@redhat.com>
This commit is contained in:
parent
0fff1f1371
commit
141cdcdf84
1 changed files with 15 additions and 14 deletions
|
@ -451,16 +451,22 @@ static int coroutine_fn backup_loop(BackupBlockJob *job)
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* init copy_bitmap from sync_bitmap */
|
static void backup_init_copy_bitmap(BackupBlockJob *job)
|
||||||
static void backup_incremental_init_copy_bitmap(BackupBlockJob *job)
|
|
||||||
{
|
{
|
||||||
bool ret = bdrv_dirty_bitmap_merge_internal(job->copy_bitmap,
|
bool ret;
|
||||||
job->sync_bitmap,
|
uint64_t estimate;
|
||||||
NULL, true);
|
|
||||||
assert(ret);
|
|
||||||
|
|
||||||
job_progress_set_remaining(&job->common.job,
|
if (job->sync_mode == MIRROR_SYNC_MODE_BITMAP) {
|
||||||
bdrv_get_dirty_count(job->copy_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);
|
||||||
|
}
|
||||||
|
|
||||||
|
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)
|
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);
|
QLIST_INIT(&s->inflight_reqs);
|
||||||
qemu_co_rwlock_init(&s->flush_rwlock);
|
qemu_co_rwlock_init(&s->flush_rwlock);
|
||||||
|
|
||||||
if (s->sync_mode == MIRROR_SYNC_MODE_BITMAP) {
|
backup_init_copy_bitmap(s);
|
||||||
backup_incremental_init_copy_bitmap(s);
|
|
||||||
} else {
|
|
||||||
bdrv_set_dirty_bitmap(s->copy_bitmap, 0, s->len);
|
|
||||||
job_progress_set_remaining(job, s->len);
|
|
||||||
}
|
|
||||||
|
|
||||||
s->before_write.notify = backup_before_write_notify;
|
s->before_write.notify = backup_before_write_notify;
|
||||||
bdrv_add_before_write_notifier(bs, &s->before_write);
|
bdrv_add_before_write_notifier(bs, &s->before_write);
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue