[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH 03/11] test-block-iothread: Lock AioContext for blk_insert_bs()
From: |
Kevin Wolf |
Subject: |
[PATCH 03/11] test-block-iothread: Lock AioContext for blk_insert_bs() |
Date: |
Wed, 31 May 2023 13:02:23 +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>
---
tests/unit/test-block-iothread.c | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
diff --git a/tests/unit/test-block-iothread.c b/tests/unit/test-block-iothread.c
index f081c09729..d727a5fee8 100644
--- a/tests/unit/test-block-iothread.c
+++ b/tests/unit/test-block-iothread.c
@@ -825,6 +825,7 @@ static void test_attach_second_node(void)
BlockDriverState *bs, *filter;
QDict *options;
+ aio_context_acquire(main_ctx);
blk = blk_new(ctx, BLK_PERM_ALL, BLK_PERM_ALL);
bs = bdrv_new_open_driver(&bdrv_test, "base", BDRV_O_RDWR, &error_abort);
blk_insert_bs(blk, bs, &error_abort);
@@ -833,7 +834,6 @@ static void test_attach_second_node(void)
qdict_put_str(options, "driver", "raw");
qdict_put_str(options, "file", "base");
- aio_context_acquire(main_ctx);
filter = bdrv_open(NULL, NULL, options, BDRV_O_RDWR, &error_abort);
aio_context_release(main_ctx);
@@ -857,9 +857,11 @@ static void test_attach_preserve_blk_ctx(void)
{
IOThread *iothread = iothread_new();
AioContext *ctx = iothread_get_aio_context(iothread);
+ AioContext *main_ctx = qemu_get_aio_context();
BlockBackend *blk;
BlockDriverState *bs;
+ aio_context_acquire(main_ctx);
blk = blk_new(ctx, BLK_PERM_ALL, BLK_PERM_ALL);
bs = bdrv_new_open_driver(&bdrv_test, "base", BDRV_O_RDWR, &error_abort);
bs->total_sectors = 65536 / BDRV_SECTOR_SIZE;
@@ -868,6 +870,7 @@ static void test_attach_preserve_blk_ctx(void)
blk_insert_bs(blk, bs, &error_abort);
g_assert(blk_get_aio_context(blk) == ctx);
g_assert(bdrv_get_aio_context(bs) == ctx);
+ aio_context_release(main_ctx);
/* Remove the node again */
aio_context_acquire(ctx);
@@ -877,7 +880,9 @@ static void test_attach_preserve_blk_ctx(void)
g_assert(bdrv_get_aio_context(bs) == qemu_get_aio_context());
/* Re-attach the node */
+ aio_context_acquire(main_ctx);
blk_insert_bs(blk, bs, &error_abort);
+ aio_context_release(main_ctx);
g_assert(blk_get_aio_context(blk) == ctx);
g_assert(bdrv_get_aio_context(bs) == ctx);
--
2.40.1
- [PATCH 00/11] block: Re-enable the graph lock, Kevin Wolf, 2023/05/31
- [PATCH 09/11] blockjob: Fix AioContext locking in block_job_add_bdrv(), Kevin Wolf, 2023/05/31
- [PATCH 02/11] qdev-properties-system: Lock AioContext for blk_insert_bs(), Kevin Wolf, 2023/05/31
- [PATCH 03/11] test-block-iothread: Lock AioContext for blk_insert_bs(),
Kevin Wolf <=
- [PATCH 05/11] block: Fix AioContext locking in bdrv_attach_child_common(), Kevin Wolf, 2023/05/31
- [PATCH 10/11] graph-lock: Unlock the AioContext while polling, Kevin Wolf, 2023/05/31
- [PATCH 01/11] iotests: Test active commit with iothread and background I/O, Kevin Wolf, 2023/05/31
- [PATCH 06/11] block: Fix AioContext locking in bdrv_reopen_parse_file_or_backing(), Kevin Wolf, 2023/05/31
- [PATCH 11/11] Revert "graph-lock: Disable locking for now", Kevin Wolf, 2023/05/31
- [PATCH 08/11] block: Fix AioContext locking in bdrv_open_backing_file(), Kevin Wolf, 2023/05/31
- [PATCH 04/11] block: Fix AioContext locking in bdrv_open_child(), Kevin Wolf, 2023/05/31
- [PATCH 07/11] block: Fix AioContext locking in bdrv_open_inherit(), Kevin Wolf, 2023/05/31