mirror of https://github.com/xemu-project/xemu.git
commit: Replace commit_top_bs on failure after deleting the block job
If there's an error in commit_start() then the block job must be
deleted before replacing commit_top_bs, otherwise it will fail because
of lack of permissions. This happens since the permission system was
introduced in 8dfba27977
.
Fortunately this bug doesn't seem to be possible to reproduce at the
moment without changing the code.
Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
57830a499f
commit
2468eed3be
|
@ -374,10 +374,12 @@ fail:
|
||||||
if (s->top) {
|
if (s->top) {
|
||||||
blk_unref(s->top);
|
blk_unref(s->top);
|
||||||
}
|
}
|
||||||
|
job_early_fail(&s->common.job);
|
||||||
|
/* commit_top_bs has to be replaced after deleting the block job,
|
||||||
|
* otherwise this would fail because of lack of permissions. */
|
||||||
if (commit_top_bs) {
|
if (commit_top_bs) {
|
||||||
bdrv_replace_node(commit_top_bs, top, &error_abort);
|
bdrv_replace_node(commit_top_bs, top, &error_abort);
|
||||||
}
|
}
|
||||||
job_early_fail(&s->common.job);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue