OSDN Git Service

block: keep bitmap if incremental backup job is cancelled
authorStefan Hajnoczi <stefanha@redhat.com>
Mon, 15 Jun 2015 15:02:14 +0000 (16:02 +0100)
committerJeff Cody <jcody@redhat.com>
Wed, 15 Jul 2015 01:50:13 +0000 (21:50 -0400)
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>
block/backup.c

index d3c7d9f..965654d 100644 (file)
@@ -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);