diff options
author | Kevin Wolf | 2017-02-28 12:45:58 +0100 |
---|---|---|
committer | Kevin Wolf | 2017-02-28 20:40:37 +0100 |
commit | bbc02b90bcba371818dbffec89933072f9406945 (patch) | |
tree | e8c4b9b1e495a5bdf90c9034a6303d57a683da83 /include/block | |
parent | block: Allow backing file links in change_parent_backing_link() (diff) | |
download | qemu-bbc02b90bcba371818dbffec89933072f9406945.tar.gz qemu-bbc02b90bcba371818dbffec89933072f9406945.tar.xz qemu-bbc02b90bcba371818dbffec89933072f9406945.zip |
blockjob: Factor out block_job_remove_all_bdrv()
In some cases, we want to remove op blockers on intermediate nodes
before the whole block job transaction has completed (because they block
restoring the final graph state during completion). Provide a function
for this.
The whole block job lifecycle is a bit messed up and it's hard to
actually do all things in the right order, but I'll leave simplifying
this for another day.
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Acked-by: Fam Zheng <famz@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'include/block')
-rw-r--r-- | include/block/blockjob.h | 9 |
1 files changed, 9 insertions, 0 deletions
diff --git a/include/block/blockjob.h b/include/block/blockjob.h index 9d65ef80b8..9e906f7d7e 100644 --- a/include/block/blockjob.h +++ b/include/block/blockjob.h @@ -181,6 +181,15 @@ int block_job_add_bdrv(BlockJob *job, const char *name, BlockDriverState *bs, uint64_t perm, uint64_t shared_perm, Error **errp); /** + * block_job_remove_all_bdrv: + * @job: The block job + * + * Remove all BlockDriverStates from the list of nodes that are involved in the + * job. This removes the blockers added with block_job_add_bdrv(). + */ +void block_job_remove_all_bdrv(BlockJob *job); + +/** * block_job_set_speed: * @job: The job to set the speed for. * @speed: The new value |