block/dirty-bitmaps: prohibit removing readonly bitmaps
authorJohn Snow <jsnow@redhat.com>
Tue, 12 Mar 2019 16:05:49 +0000 (12:05 -0400)
committerJohn Snow <jsnow@redhat.com>
Tue, 12 Mar 2019 16:05:49 +0000 (12:05 -0400)
Remove is an inherently RW operation, so this will fail anyway, but
we can fail it very quickly instead of trying and failing, so do so.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-id: 20190301191545.8728-6-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
blockdev.c

index dd841fc5db3557a632d7fd4955b0106ede54f09d..1391f4200a3937a8967360a8ba772c76b4340e63 100644 (file)
@@ -2884,7 +2884,8 @@ void qmp_block_dirty_bitmap_remove(const char *node, const char *name,
         return;
     }
 
-    if (bdrv_dirty_bitmap_check(bitmap, BDRV_BITMAP_BUSY, errp)) {
+    if (bdrv_dirty_bitmap_check(bitmap, BDRV_BITMAP_BUSY | BDRV_BITMAP_RO,
+                                errp)) {
         return;
     }