summaryrefslogtreecommitdiff
path: root/block/mirror.c
diff options
context:
space:
mode:
authorTing Wang <kathy.wangting@huawei.com>2015-06-26 17:37:35 +0800
committerStefan Hajnoczi <stefanha@redhat.com>2015-07-07 14:27:14 +0100
commit970311646a701eecb103eb28093e8924d2fa6861 (patch)
treeb29db635f79eb8297b1fa35a9d60c3eb523e326b /block/mirror.c
parent25d9747b6427de8253221d544b45e50888d4cef7 (diff)
downloadqemu-970311646a701eecb103eb28093e8924d2fa6861.zip
blockjob: add block_job_release function
There is job resource leak in function mirror_start_job, although bdrv_create_dirty_bitmap is unlikely failed. Add block_job_release for each release when needed. Signed-off-by: Ting Wang <kathy.wangting@huawei.com> Reviewed-by: John Snow <jsnow@redhat.com> Message-id: 1435311455-56048-1-git-send-email-kathy.wangting@huawei.com Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'block/mirror.c')
-rw-r--r--block/mirror.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/block/mirror.c b/block/mirror.c
index 8888cea952..d409337c4a 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -708,6 +708,8 @@ static void mirror_start_job(BlockDriverState *bs, BlockDriverState *target,
s->dirty_bitmap = bdrv_create_dirty_bitmap(bs, granularity, NULL, errp);
if (!s->dirty_bitmap) {
+ g_free(s->replaces);
+ block_job_release(bs);
return;
}
bdrv_set_enable_write_cache(s->target, true);