|
@@ -143,11 +143,15 @@ static void set_drive_helper(Object *obj, Visitor *v, const char *name,
|
|
* aware of iothreads require their BlockBackends to be in the main
|
|
* aware of iothreads require their BlockBackends to be in the main
|
|
* AioContext.
|
|
* AioContext.
|
|
*/
|
|
*/
|
|
- ctx = iothread ? bdrv_get_aio_context(bs) : qemu_get_aio_context();
|
|
|
|
- blk = blk_new(ctx, 0, BLK_PERM_ALL);
|
|
|
|
|
|
+ ctx = bdrv_get_aio_context(bs);
|
|
|
|
+ blk = blk_new(iothread ? ctx : qemu_get_aio_context(),
|
|
|
|
+ 0, BLK_PERM_ALL);
|
|
blk_created = true;
|
|
blk_created = true;
|
|
|
|
|
|
|
|
+ aio_context_acquire(ctx);
|
|
ret = blk_insert_bs(blk, bs, errp);
|
|
ret = blk_insert_bs(blk, bs, errp);
|
|
|
|
+ aio_context_release(ctx);
|
|
|
|
+
|
|
if (ret < 0) {
|
|
if (ret < 0) {
|
|
goto fail;
|
|
goto fail;
|
|
}
|
|
}
|