diff options
author | Paolo Bonzini <pbonzini@redhat.com> | 2013-01-21 17:09:44 +0100 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2013-01-25 18:18:33 +0100 |
commit | acc906c6c5d5745fe7a3a2ed1bb5f0b1d6d1f21b (patch) | |
tree | e7e5ffc3794a3b4fa6bea42e1a2a8ae9a3eaf9e4 | |
parent | b812f6719c21921a819709098dc018ed151c999b (diff) |
block: return count of dirty sectors, not chunks
Reviewed-by: Laszlo Ersek <lersek@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
-rw-r--r-- | block-migration.c | 2 | ||||
-rw-r--r-- | block.c | 5 | ||||
-rw-r--r-- | block/mirror.c | 2 |
3 files changed, 4 insertions, 5 deletions
diff --git a/block-migration.c b/block-migration.c index 6acf3e1682..9d0b037029 100644 --- a/block-migration.c +++ b/block-migration.c @@ -478,7 +478,7 @@ static int64_t get_remaining_dirty(void) dirty += bdrv_get_dirty_count(bmds->bs); } - return dirty * BLOCK_SIZE; + return dirty << BDRV_SECTOR_BITS; } static void blk_mig_cleanup(void) @@ -2832,8 +2832,7 @@ BlockInfo *bdrv_query_info(BlockDriverState *bs) if (bs->dirty_bitmap) { info->has_dirty = true; info->dirty = g_malloc0(sizeof(*info->dirty)); - info->dirty->count = bdrv_get_dirty_count(bs) * - BDRV_SECTORS_PER_DIRTY_CHUNK * BDRV_SECTOR_SIZE; + info->dirty->count = bdrv_get_dirty_count(bs) * BDRV_SECTOR_SIZE; } if (bs->drv) { @@ -4347,7 +4346,7 @@ void bdrv_reset_dirty(BlockDriverState *bs, int64_t cur_sector, int64_t bdrv_get_dirty_count(BlockDriverState *bs) { if (bs->dirty_bitmap) { - return hbitmap_count(bs->dirty_bitmap) >> BDRV_LOG_SECTORS_PER_DIRTY_CHUNK; + return hbitmap_count(bs->dirty_bitmap); } else { return 0; } diff --git a/block/mirror.c b/block/mirror.c index 307bcf101e..7884b3bc78 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -245,7 +245,7 @@ static void coroutine_fn mirror_run(void *opaque) trace_mirror_before_sleep(s, cnt, s->synced); if (!s->synced) { /* Publish progress */ - s->common.offset = end * BDRV_SECTOR_SIZE - cnt * BLOCK_SIZE; + s->common.offset = (end - cnt) * BDRV_SECTOR_SIZE; if (s->common.speed) { delay_ns = ratelimit_calculate_delay(&s->limit, BDRV_SECTORS_PER_DIRTY_CHUNK); |