From 02be4aeb9343d9a4993b1de6cebe6280e82d7254 Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Thu, 6 Apr 2017 19:05:07 +0200 Subject: commit: Set commit_top_bs->aio_context The filter driver that is inserted by the commit job needs to use the same AioContext as its parent and child nodes. Signed-off-by: Kevin Wolf Reviewed-by: Eric Blake Reviewed-by: Fam Zheng --- block/commit.c | 2 ++ 1 file changed, 2 insertions(+) (limited to 'block/commit.c') diff --git a/block/commit.c b/block/commit.c index 28324820a4..4c3822080e 100644 --- a/block/commit.c +++ b/block/commit.c @@ -335,6 +335,7 @@ void commit_start(const char *job_id, BlockDriverState *bs, if (commit_top_bs == NULL) { goto fail; } + bdrv_set_aio_context(commit_top_bs, bdrv_get_aio_context(top)); bdrv_set_backing_hd(commit_top_bs, top, &local_err); if (local_err) { @@ -482,6 +483,7 @@ 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); -- cgit 1.4.1 From 0d0676a1040d34339731a4e26a9b39b78c8a1fdf Mon Sep 17 00:00:00 2001 From: Kevin Wolf Date: Thu, 6 Apr 2017 19:07:14 +0200 Subject: commit: Set commit_top_bs->total_sectors Like in the mirror filter driver, we also need to set the image size for the commit filter driver. This is less likely to be a problem in practice than for the mirror because we're not at the active layer here, but attaching new parents to a node in the middle of the chain is possible, so the size needs to be correct anyway. Signed-off-by: Kevin Wolf Reviewed-by: Eric Blake Reviewed-by: Fam Zheng --- block/commit.c | 1 + 1 file changed, 1 insertion(+) (limited to 'block/commit.c') diff --git a/block/commit.c b/block/commit.c index 4c3822080e..91d2c344f6 100644 --- a/block/commit.c +++ b/block/commit.c @@ -335,6 +335,7 @@ void commit_start(const char *job_id, BlockDriverState *bs, if (commit_top_bs == NULL) { goto fail; } + commit_top_bs->total_sectors = top->total_sectors; bdrv_set_aio_context(commit_top_bs, bdrv_get_aio_context(top)); bdrv_set_backing_hd(commit_top_bs, top, &local_err); -- cgit 1.4.1