block/backup-top: fix failure path
commit0df62f45c1de6c020f1e6fba4eeafd248209b003
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Tue, 21 Jan 2020 14:28:01 +0000 (21 17:28 +0300)
committerMax Reitz <mreitz@redhat.com>
Thu, 6 Feb 2020 12:47:45 +0000 (6 13:47 +0100)
tree4013a0cb0ed58a50709235cfce09d68a88b042df
parent3afea40243d7ccba7b569daa4dc7b174e594f792
block/backup-top: fix failure path

We can't access top after call bdrv_backup_top_drop, as it is already
freed at this time.

Also, no needs to unref target child by hand, it will be unrefed on
bdrv_close() automatically.

So, just do bdrv_backup_top_drop if append succeed and one bdrv_unref
otherwise.

Note, that in !appended case bdrv_unref(top) moved into drained section
on source. It doesn't really matter, but just for code simplicity.

Fixes: 7df7868b96404
Cc: qemu-stable@nongnu.org # v4.2.0
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 20200121142802.21467-2-vsementsov@virtuozzo.com
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/backup-top.c