On 12/11/2014 09:17 AM, 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>
---
  block-migration.c     |  5 +++--
  block.c               | 23 ++++++++++++++++++++---
  block/mirror.c        | 11 +++++++----
  include/block/block.h |  6 ++++--
  4 files changed, 34 insertions(+), 11 deletions(-)

[snip]

A version of this already went in upstream, so it can be dropped here now.

Reply via email to