mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-19 03:30:49 +00:00
mirror: Move open_backing_file to exit_common
This is a graph change and therefore should be done in job-finalize (which is what invokes mirror_exit_common()). Signed-off-by: Max Reitz <mreitz@redhat.com> Message-Id: <20210409120422.144040-2-mreitz@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
da64789d3a
commit
c41f5b96ee
@ -689,6 +689,14 @@ static int mirror_exit_common(Job *job)
|
||||
ret = -EPERM;
|
||||
}
|
||||
}
|
||||
} else if (!abort && s->backing_mode == MIRROR_OPEN_BACKING_CHAIN) {
|
||||
assert(!bdrv_backing_chain_next(target_bs));
|
||||
ret = bdrv_open_backing_file(bdrv_skip_filters(target_bs), NULL,
|
||||
"backing", &local_err);
|
||||
if (ret < 0) {
|
||||
error_report_err(local_err);
|
||||
local_err = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
if (s->to_replace) {
|
||||
@ -1107,9 +1115,6 @@ immediate_exit:
|
||||
static void mirror_complete(Job *job, Error **errp)
|
||||
{
|
||||
MirrorBlockJob *s = container_of(job, MirrorBlockJob, common.job);
|
||||
BlockDriverState *target;
|
||||
|
||||
target = blk_bs(s->target);
|
||||
|
||||
if (!s->synced) {
|
||||
error_setg(errp, "The active block job '%s' cannot be completed",
|
||||
@ -1117,17 +1122,6 @@ static void mirror_complete(Job *job, Error **errp)
|
||||
return;
|
||||
}
|
||||
|
||||
if (s->backing_mode == MIRROR_OPEN_BACKING_CHAIN) {
|
||||
int ret;
|
||||
|
||||
assert(!bdrv_backing_chain_next(target));
|
||||
ret = bdrv_open_backing_file(bdrv_skip_filters(target), NULL,
|
||||
"backing", errp);
|
||||
if (ret < 0) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/* block all operations on to_replace bs */
|
||||
if (s->replaces) {
|
||||
AioContext *replace_aio_context;
|
||||
|
Loading…
x
Reference in New Issue
Block a user