OK, Stefan posted a patch for that assert (see 'nbd-client: avoid spurious
qui_channel_yield() re-entry) so now I'm running with the following patch and
I'm seeing the bdrv_inactivate return a -1 for
drive-virtio-disk0
Christian: Could you see what your source says with this patch?
diff --git a/block.c b/block.c
index 3615a68..f9bd689 100644
--- a/block.c
+++ b/block.c
@@ -4078,9 +4078,11 @@ static int bdrv_inactivate_recurse(BlockDriverState *bs,
BdrvChild *child, *parent;
int ret;
+ fprintf(stderr, "%s: entry for %s\n", __func__,
bdrv_get_device_or_node_name(bs));
if (!setting_flag && bs->drv->bdrv_inactivate) {
ret = bs->drv->bdrv_inactivate(bs);
if (ret < 0) {
+ fprintf(stderr, "%s: exit 1(%d) for %s\n", __func__, ret,
bdrv_get_device_or_node_name(bs));
return ret;
}
}
@@ -4094,6 +4096,7 @@ static int bdrv_inactivate_recurse(BlockDriverState *bs,
if (parent->role->inactivate) {
ret = parent->role->inactivate(parent);
if (ret < 0) {
+ fprintf(stderr, "%s: exit 2(%d) for %s\n", __func__, ret,
bdrv_get_device_or_node_name(bs));
bs->open_flags &= ~BDRV_O_INACTIVE;
return ret;
}
@@ -4109,6 +4112,7 @@ static int bdrv_inactivate_recurse(BlockDriverState *bs,
QLIST_FOREACH(child, &bs->children, next) {
ret = bdrv_inactivate_recurse(child->bs, setting_flag);
if (ret < 0) {
+ fprintf(stderr, "%s: exit 3(%d) for %s\n", __func__, ret,
bdrv_get_device_or_node_name(bs));
return ret;
}
}
@@ -4117,6 +4121,7 @@ static int bdrv_inactivate_recurse(BlockDriverState *bs,
* driver */
bdrv_release_persistent_dirty_bitmaps(bs);
+ fprintf(stderr, "%s: exit end good for %s\n", __func__,
bdrv_get_device_or_node_name(bs));
return 0;
}
--
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/1711602
Title:
--copy-storage-all failing with qemu 2.10
To manage notifications about this bug go to:
https://bugs.launchpad.net/qemu/+bug/1711602/+subscriptions
--
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs