[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 08/10] block: Fix unpaired aio_disable_external in ex
From: |
Kevin Wolf |
Subject: |
[Qemu-devel] [PULL 08/10] block: Fix unpaired aio_disable_external in external snapshot |
Date: |
Fri, 7 Apr 2017 15:47:43 +0200 |
From: Fam Zheng <address@hidden>
bdrv_replace_child_noperm tries to hand over the quiesce_counter state
from old bs to the new one, but if they are not on the same aio context
this causes unbalance.
Fix this by setting the correct aio context before calling
bdrv_append().
Reported-by: Ed Swierk <address@hidden>
Reviewed-by: Eric Blake <address@hidden>
Signed-off-by: Fam Zheng <address@hidden>
Signed-off-by: Kevin Wolf <address@hidden>
---
blockdev.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/blockdev.c b/blockdev.c
index 040c152..4927914 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -1772,6 +1772,8 @@ static void external_snapshot_prepare(BlkActionState
*common,
return;
}
+ bdrv_set_aio_context(state->new_bs, state->aio_context);
+
/* This removes our old bs and adds the new bs. This is an operation that
* can fail, so we need to do it in .prepare; undoing it for abort is
* always possible. */
@@ -1789,8 +1791,6 @@ static void external_snapshot_commit(BlkActionState
*common)
ExternalSnapshotState *state =
DO_UPCAST(ExternalSnapshotState, common, common);
- bdrv_set_aio_context(state->new_bs, state->aio_context);
-
/* We don't need (or want) to use the transactional
* bdrv_reopen_multiple() across all the entries at once, because we
* don't want to abort all of them if one of them fails the reopen */
--
1.8.3.1
- [Qemu-devel] [PULL 00/10] Block layer fixes for 2.9.0-rc4, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 03/10] commit: Set commit_top_bs->total_sectors, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 02/10] commit: Set commit_top_bs->aio_context, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 01/10] block: Ignore guest dev permissions during incoming migration, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 04/10] block/mirror: Fix use-after-free, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 05/10] iotests: Add mirror tests for orphaned source, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 06/10] qemu-img: img_create does not support image-opts, fix docs, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 10/10] mirror: Fix aio context of mirror_top_bs, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 07/10] block: Don't check permissions for copy on read, Kevin Wolf, 2017/04/07
- [Qemu-devel] [PULL 08/10] block: Fix unpaired aio_disable_external in external snapshot,
Kevin Wolf <=
- [Qemu-devel] [PULL 09/10] block: Assert attached child node has right aio context, Kevin Wolf, 2017/04/07
- Re: [Qemu-devel] [PULL 00/10] Block layer fixes for 2.9.0-rc4, Peter Maydell, 2017/04/07
- Re: [Qemu-devel] [PULL 00/10] Block layer fixes for 2.9.0-rc4, no-reply, 2017/04/12