|
@@ -7688,17 +7688,21 @@ static bool bdrv_change_aio_context(BlockDriverState *bs, AioContext *ctx,
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
+ bdrv_graph_rdlock_main_loop();
|
|
|
QLIST_FOREACH(c, &bs->parents, next_parent) {
|
|
|
if (!bdrv_parent_change_aio_context(c, ctx, visited, tran, errp)) {
|
|
|
+ bdrv_graph_rdunlock_main_loop();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
QLIST_FOREACH(c, &bs->children, next) {
|
|
|
if (!bdrv_child_change_aio_context(c, ctx, visited, tran, errp)) {
|
|
|
+ bdrv_graph_rdunlock_main_loop();
|
|
|
return false;
|
|
|
}
|
|
|
}
|
|
|
+ bdrv_graph_rdunlock_main_loop();
|
|
|
|
|
|
state = g_new(BdrvStateSetAioContext, 1);
|
|
|
*state = (BdrvStateSetAioContext) {
|