On 3/1/19 1:15 PM, John Snow wrote: > We didn't do any state checking on source bitmaps at all, > so this adds inconsistent and busy checks. readonly is > allowed, so you can still copy a readonly bitmap to a new > destination to use it for operations like drive-backup. > > Signed-off-by: John Snow <js...@redhat.com> > --- > block/dirty-bitmap.c | 3 +++ > 1 file changed, 3 insertions(+) >
I understand forbidding inconsistent sources (because if the source is potentially missing bits, then the merge destination will also be missing bits and thus be inconsistent), but why forbid busy? If I've associated a bitmap with an NBD server (making it busy), it is still readable, and so I should still be able to merge its bits into another copy. > diff --git a/block/dirty-bitmap.c b/block/dirty-bitmap.c > index 769668ccdc..8403c9981d 100644 > --- a/block/dirty-bitmap.c > +++ b/block/dirty-bitmap.c > @@ -825,6 +825,9 @@ void bdrv_merge_dirty_bitmap(BdrvDirtyBitmap *dest, const > BdrvDirtyBitmap *src, > goto out; > } > > + if (bdrv_dirty_bitmap_check(src, BDRV_BITMAP_ALLOW_RO, errp)) { Thus, I think this should be BDRV_BITMAP_INCONSISTENT. -- Eric Blake, Principal Software Engineer Red Hat, Inc. +1-919-301-3226 Virtualization: qemu.org | libvirt.org