From: Vladimir Sementsov-Ogievskiy <vsement...@openvz.org> At the end we ignore failure of bdrv_merge_dirty_bitmap() and report success. And still set errp. That's wrong.
Signed-off-by: Vladimir Sementsov-Ogievskiy <v.sementsov...@mail.ru> Reviewed-by: Nikita Lapshin <nikita.laps...@virtuozzo.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Message-Id: <20220517111206.23585-2-v.sementsov...@mail.ru> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/monitor/bitmap-qmp-cmds.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/block/monitor/bitmap-qmp-cmds.c b/block/monitor/bitmap-qmp-cmds.c index 2b677c4a2f..bd10468596 100644 --- a/block/monitor/bitmap-qmp-cmds.c +++ b/block/monitor/bitmap-qmp-cmds.c @@ -309,7 +309,10 @@ BdrvDirtyBitmap *block_dirty_bitmap_merge(const char *node, const char *target, } /* Merge into dst; dst is unchanged on failure. */ - bdrv_merge_dirty_bitmap(dst, anon, backup, errp); + if (!bdrv_merge_dirty_bitmap(dst, anon, backup, errp)) { + dst = NULL; + goto out; + } out: bdrv_release_dirty_bitmap(anon); -- 2.35.3