mirror of https://github.com/xemu-project/xemu.git
test-block-iothread: Lock AioContext for blk_insert_bs()
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> Message-ID: <20230605085711.21261-4-kwolf@redhat.com> Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
415275aed9
commit
2065cf6b23
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue