diff mbox series

[PULL,01/27] mirror: Release the dirty bitmap if mirror_start_job() fails

Message ID 20190201163518.31157-2-kwolf@redhat.com
State New
Headers show
Series [PULL,01/27] mirror: Release the dirty bitmap if mirror_start_job() fails | expand

Commit Message

Kevin Wolf Feb. 1, 2019, 4:34 p.m. UTC
From: Alberto Garcia <berto@igalia.com>

At the moment I don't see how to make this function fail after the
dirty bitmap has been created, but if that was possible then we would
hit the assert(QLIST_EMPTY(&bs->dirty_bitmaps)) in bdrv_close().

Signed-off-by: Alberto Garcia <berto@igalia.com>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
---
 block/mirror.c | 3 +++
 1 file changed, 3 insertions(+)
diff mbox series

Patch

diff --git a/block/mirror.c b/block/mirror.c
index 24ede6fdaa..4cf1c088c0 100644
--- a/block/mirror.c
+++ b/block/mirror.c
@@ -1649,6 +1649,9 @@  fail:
         g_free(s->replaces);
         blk_unref(s->target);
         bs_opaque->job = NULL;
+        if (s->dirty_bitmap) {
+            bdrv_release_dirty_bitmap(bs, s->dirty_bitmap);
+        }
         job_early_fail(&s->common.job);
     }