diff options
Diffstat (limited to 'block/backup.c')
-rw-r--r-- | block/backup.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/block/backup.c b/block/backup.c index 2b4c5c23e4..d07b838930 100644 --- a/block/backup.c +++ b/block/backup.c @@ -274,8 +274,11 @@ static void backup_cleanup_sync_bitmap(BackupBlockJob *job, int ret) BdrvDirtyBitmap *bm; BlockDriverState *bs = blk_bs(job->common.blk); - if (ret < 0) { - /* Merge the successor back into the parent, delete nothing. */ + if (ret < 0 || job->bitmap_mode == BITMAP_SYNC_MODE_NEVER) { + /* + * Failure, or we don't want to synchronize the bitmap. + * Merge the successor back into the parent, delete nothing. + */ bm = bdrv_reclaim_dirty_bitmap(bs, job->sync_bitmap, NULL); assert(bm); } else { |