[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 02/11] qdev-properties-system: Lock AioContext for blk_insert_
From: |
Kevin Wolf |
Subject: |
[PATCH v2 02/11] qdev-properties-system: Lock AioContext for blk_insert_bs() |
Date: |
Mon, 5 Jun 2023 10:57:02 +0200 |
blk_insert_bs() requires that callers hold the AioContext lock for the
node that should be inserted. Take it.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
hw/core/qdev-properties-system.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/hw/core/qdev-properties-system.c b/hw/core/qdev-properties-system.c
index d42493f630..6d5d43eda2 100644
--- a/hw/core/qdev-properties-system.c
+++ b/hw/core/qdev-properties-system.c
@@ -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
* 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;
+ aio_context_acquire(ctx);
ret = blk_insert_bs(blk, bs, errp);
+ aio_context_release(ctx);
+
if (ret < 0) {
goto fail;
}
--
2.40.1
- [PATCH v2 00/11] block: Re-enable the graph lock, Kevin Wolf, 2023/06/05
- [PATCH v2 01/11] iotests: Test active commit with iothread and background I/O, Kevin Wolf, 2023/06/05
- [PATCH v2 03/11] test-block-iothread: Lock AioContext for blk_insert_bs(), Kevin Wolf, 2023/06/05
- [PATCH v2 04/11] block: Fix AioContext locking in bdrv_open_child(), Kevin Wolf, 2023/06/05
- [PATCH v2 02/11] qdev-properties-system: Lock AioContext for blk_insert_bs(),
Kevin Wolf <=
- [PATCH v2 06/11] block: Fix AioContext locking in bdrv_reopen_parse_file_or_backing(), Kevin Wolf, 2023/06/05
- [PATCH v2 07/11] block: Fix AioContext locking in bdrv_open_inherit(), Kevin Wolf, 2023/06/05
- [PATCH v2 05/11] block: Fix AioContext locking in bdrv_attach_child_common(), Kevin Wolf, 2023/06/05
- [PATCH v2 08/11] block: Fix AioContext locking in bdrv_open_backing_file(), Kevin Wolf, 2023/06/05
- [PATCH v2 09/11] blockjob: Fix AioContext locking in block_job_add_bdrv(), Kevin Wolf, 2023/06/05
- [PATCH v2 11/11] Revert "graph-lock: Disable locking for now", Kevin Wolf, 2023/06/05
- [PATCH v2 10/11] graph-lock: Unlock the AioContext while polling, Kevin Wolf, 2023/06/05
- Re: [PATCH v2 00/11] block: Re-enable the graph lock, Stefan Hajnoczi, 2023/06/07