On 2014-11-27 at 10:40, Vladimir Sementsov-Ogievskiy wrote:
Mirror and migration use dirty bitmaps for their purposes, and since
commit [block: per caller dirty bitmap] they use their own bitmaps, not
the global one. But they use old functions bdrv_set_dirty and
bdrv_reset_dirty, which change all dirty bitmaps.
Named dirty bitmaps series by Fam and Snow are affected: mirroring and
migration will spoil all (not related to this mirroring or migration)
named dirty bitmaps.
This patch fixes this by adding bdrv_set_dirty_bitmap and
bdrv_reset_dirty_bitmap, which change concrete bitmap. Also, to prevent
such mistakes in future, old functions bdrv_(set,reset)_dirty are made
static, for internal block usage.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@parallels.com>
CC: John Snow <js...@redhat.com>
CC: Fam Zheng <f...@redhat.com>
CC: Denis V. Lunev <d...@openvz.org>
CC: Stefan Hajnoczi <stefa...@redhat.com>
CC: Kevin Wolf <kw...@redhat.com>
---
This patch conflicts with
[PATCH v8 05/10] block: Add bdrv_copy_dirty_bitmap and bdrv_reset_dirty_bitmap
by John Snow, which introduces bdrv_reset_dirty_bitmap too, but it resets the
whole
bitmap, not specified sectors range.
block-migration.c | 5 +++--
block.c | 23 ++++++++++++++++++++---
block/mirror.c | 11 +++++++----
include/block/block.h | 6 ++++--
4 files changed, 34 insertions(+), 11 deletions(-)
Thanks, applied to my block tree:
https://github.com/XanClic/qemu/commits/block