Am 03.03.2017 um 14:38 hat Fam Zheng geschrieben:
> bdrv_set_backing_hd failure needn't be abort. Since we already have
> error parameter, use it.
>
> Signed-off-by: Fam Zheng <famz@redhat.com>
> ---
> block/commit.c | 12 ++++++++++--
> 1 file changed, 10 insertions(+), 2 deletions(-)
>
> diff --git a/block/commit.c b/block/commit.c
> index 22a0a4d..1be19e1 100644
> --- a/block/commit.c
> +++ b/block/commit.c
> @@ -316,8 +316,16 @@ void commit_start(const char *job_id, BlockDriverState *bs,
> goto fail;
> }
>
> - bdrv_set_backing_hd(commit_top_bs, top, &error_abort);
> - bdrv_set_backing_hd(overlay_bs, commit_top_bs, &error_abort);
> + bdrv_set_backing_hd(commit_top_bs, top, &local_err);
> + if (local_err) {
> + error_propagate(errp, local_err);
> + goto fail;
> + }
> + bdrv_set_backing_hd(overlay_bs, commit_top_bs, &local_err);
> + if (local_err) {
> + error_propagate(errp, local_err);
> + goto fail;
> + }
In these error paths, bdrv_unref(commit_top_bs) seems to missing.
Kevin