[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-block] [PULL 21/28] block: Remove wrong bdrv_set_aio_context() cal
From: |
Kevin Wolf |
Subject: |
[Qemu-block] [PULL 21/28] block: Remove wrong bdrv_set_aio_context() calls |
Date: |
Mon, 3 Jun 2019 17:02:26 +0200 |
The mirror and commit block jobs use bdrv_set_aio_context() to move
their filter node into the right AioContext before hooking it up in the
graph. Similarly, bdrv_open_backing_file() explicitly moves the backing
file node into the right AioContext first.
This isn't necessary any more, they get automatically moved into the
right context now when attaching them.
However, in the case of bdrv_open_backing_file() with a node reference,
it's actually not only unnecessary, but even wrong: The unchecked
bdrv_set_aio_context() changes the AioContext of the child node even if
other parents require it to retain the old context. So this is not only
a simplification, but a bug fix, too.
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1684342
Signed-off-by: Kevin Wolf <address@hidden>
---
block.c | 1 -
block/commit.c | 2 --
block/mirror.c | 1 -
3 files changed, 4 deletions(-)
diff --git a/block.c b/block.c
index 6830f2d940..ddfae15d9b 100644
--- a/block.c
+++ b/block.c
@@ -2554,7 +2554,6 @@ int bdrv_open_backing_file(BlockDriverState *bs, QDict
*parent_options,
ret = -EINVAL;
goto free_exit;
}
- bdrv_set_aio_context(backing_hd, bdrv_get_aio_context(bs));
if (implicit_backing) {
bdrv_refresh_filename(backing_hd);
diff --git a/block/commit.c b/block/commit.c
index 4d519506d6..c815def89a 100644
--- a/block/commit.c
+++ b/block/commit.c
@@ -301,7 +301,6 @@ void commit_start(const char *job_id, BlockDriverState *bs,
commit_top_bs->implicit = true;
}
commit_top_bs->total_sectors = top->total_sectors;
- bdrv_set_aio_context(commit_top_bs, bdrv_get_aio_context(top));
bdrv_append(commit_top_bs, top, &local_err);
if (local_err) {
@@ -443,7 +442,6 @@ int bdrv_commit(BlockDriverState *bs)
error_report_err(local_err);
goto ro_cleanup;
}
- bdrv_set_aio_context(commit_top_bs, bdrv_get_aio_context(backing_file_bs));
bdrv_set_backing_hd(commit_top_bs, backing_file_bs, &error_abort);
bdrv_set_backing_hd(bs, commit_top_bs, &error_abort);
diff --git a/block/mirror.c b/block/mirror.c
index eb96b52de9..f8bdb5b21b 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -1543,7 +1543,6 @@ static void mirror_start_job(const char *job_id,
BlockDriverState *bs,
BDRV_REQ_NO_FALLBACK;
bs_opaque = g_new0(MirrorBDSOpaque, 1);
mirror_top_bs->opaque = bs_opaque;
- bdrv_set_aio_context(mirror_top_bs, bdrv_get_aio_context(bs));
/* bdrv_append takes ownership of the mirror_top_bs reference, need to keep
* it alive until block_job_create() succeeds even if bs has no parent. */
--
2.20.1
- [Qemu-block] [PULL 11/28] nbd-server: Call blk_set_allow_aio_context_change(), (continued)
- [Qemu-block] [PULL 11/28] nbd-server: Call blk_set_allow_aio_context_change(), Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 13/28] block: Add BlockBackend.ctx, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 14/28] block: Add qdev_prop_drive_iothread property type, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 15/28] scsi-disk: Use qdev_prop_drive_iothread, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 17/28] test-block-iothread: Test adding parent to iothread node, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 19/28] block: Move node without parents to main AioContext, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 16/28] block: Adjust AioContexts when attaching nodes, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 20/28] blockdev: Use bdrv_try_set_aio_context() for monitor commands, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 22/28] virtio-scsi-test: Test attaching new overlay with iothreads, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 18/28] test-block-iothread: BlockBackend AioContext across root node change, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 21/28] block: Remove wrong bdrv_set_aio_context() calls,
Kevin Wolf <=
- [Qemu-block] [PULL 24/28] test-bdrv-drain: Use bdrv_try_set_aio_context(), Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 23/28] iotests: Attach new devices to node in non-default iothread, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 25/28] block: Remove bdrv_set_aio_context(), Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 26/28] block/qcow2-refcount: add trace-point to qcow2_process_discards, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 27/28] block/io: bdrv_pdiscard: support int64_t bytes parameter, Kevin Wolf, 2019/06/03
- [Qemu-block] [PULL 28/28] iotests: Fix duplicated diff output on failure, Kevin Wolf, 2019/06/03
- Re: [Qemu-block] [Qemu-devel] [PULL 00/28] Block layer patches, Peter Maydell, 2019/06/03
- Re: [Qemu-block] [Qemu-devel] [PULL 00/28] Block layer patches, no-reply, 2019/06/03