summaryrefslogtreecommitdiff
path: root/block/backup.c
diff options
context:
space:
mode:
authorStefan Hajnoczi <stefanha@redhat.com>2015-06-15 16:02:14 +0100
committerJeff Cody <jcody@redhat.com>2015-07-14 21:50:13 -0400
commit17d9716d7b5381c4b6566bb1a06267d2bfcd1821 (patch)
tree5eca218b14617105c43630c417f5e5a519407a58 /block/backup.c
parent299bf097375f9d148cda579ad85477304e38856b (diff)
downloadqemu-17d9716d7b5381c4b6566bb1a06267d2bfcd1821.tar.gz
qemu-17d9716d7b5381c4b6566bb1a06267d2bfcd1821.tar.bz2
qemu-17d9716d7b5381c4b6566bb1a06267d2bfcd1821.zip
block: keep bitmap if incremental backup job is cancelled
Reclaim the dirty bitmap if an incremental backup block job is cancelled. The ret variable may be 0 when the job is cancelled so it's not enough to check ret < 0. Reviewed-by: John Snow <jsnow@redhat.com> Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-id: 1434380534-7680-1-git-send-email-stefanha@redhat.com Signed-off-by: Jeff Cody <jcody@redhat.com>
Diffstat (limited to 'block/backup.c')
-rw-r--r--block/backup.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/block/backup.c b/block/backup.c
index d3c7d9f85d..965654d521 100644
--- a/block/backup.c
+++ b/block/backup.c
@@ -431,7 +431,7 @@ static void coroutine_fn backup_run(void *opaque)
if (job->sync_bitmap) {
BdrvDirtyBitmap *bm;
- if (ret < 0) {
+ if (ret < 0 || block_job_is_cancelled(&job->common)) {
/* Merge the successor back into the parent, delete nothing. */
bm = bdrv_reclaim_dirty_bitmap(bs, job->sync_bitmap, NULL);
assert(bm);