Re: [PATCH v3 7/7] migration/block-dirty-bitmap: forbid migration by generated node-name

2020-05-21 Thread Eric Blake

On 5/15/20 7:40 AM, Vladimir Sementsov-Ogievskiy wrote:

It actually never worked with libvirt, as auto-generated names are
different on source and destination.

It's unsafe and useless to migrate by auto-generated node-names, so
let's forbid it.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
Reviewed-by: Andrey Shinkevich 
---
  migration/block-dirty-bitmap.c | 7 +++
  1 file changed, 7 insertions(+)



Reviewed-by: Eric Blake 


diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
index e0e081ce60..f5744c35e6 100644
--- a/migration/block-dirty-bitmap.c
+++ b/migration/block-dirty-bitmap.c
@@ -285,6 +285,13 @@ static int add_bitmaps_to_list(BlockDriverState *bs, const 
char *bs_name)
  return -1;
  }
  
+if (bs_name[0] == '#') {

+error_report("Found bitmap '%s' in a node with auto-generated "
+ "name: %s. It can't be migrated",


Maybe compress to:

"Bitmap '%s' in auto-generated node '%s' can't be migrated"


+ bdrv_dirty_bitmap_name(bitmap), bs_name);
+return -1;
+}
+
  FOR_EACH_DIRTY_BITMAP(bs, bitmap) {
  if (!bdrv_dirty_bitmap_name(bitmap)) {
  continue;



--
Eric Blake, Principal Software Engineer
Red Hat, Inc.   +1-919-301-3226
Virtualization:  qemu.org | libvirt.org




[PATCH v3 7/7] migration/block-dirty-bitmap: forbid migration by generated node-name

2020-05-15 Thread Vladimir Sementsov-Ogievskiy
It actually never worked with libvirt, as auto-generated names are
different on source and destination.

It's unsafe and useless to migrate by auto-generated node-names, so
let's forbid it.

Signed-off-by: Vladimir Sementsov-Ogievskiy 
Reviewed-by: Andrey Shinkevich 
---
 migration/block-dirty-bitmap.c | 7 +++
 1 file changed, 7 insertions(+)

diff --git a/migration/block-dirty-bitmap.c b/migration/block-dirty-bitmap.c
index e0e081ce60..f5744c35e6 100644
--- a/migration/block-dirty-bitmap.c
+++ b/migration/block-dirty-bitmap.c
@@ -285,6 +285,13 @@ static int add_bitmaps_to_list(BlockDriverState *bs, const 
char *bs_name)
 return -1;
 }
 
+if (bs_name[0] == '#') {
+error_report("Found bitmap '%s' in a node with auto-generated "
+ "name: %s. It can't be migrated",
+ bdrv_dirty_bitmap_name(bitmap), bs_name);
+return -1;
+}
+
 FOR_EACH_DIRTY_BITMAP(bs, bitmap) {
 if (!bdrv_dirty_bitmap_name(bitmap)) {
 continue;
-- 
2.21.0