block/backup: support bitmap sync modes for non-bitmap backups
commit1a2b8b406bea1108c990b6fc932bef63211de245
authorJohn Snow <jsnow@redhat.com>
Mon, 29 Jul 2019 20:35:55 +0000 (29 16:35 -0400)
committerJohn Snow <jsnow@redhat.com>
Fri, 16 Aug 2019 22:29:43 +0000 (16 18:29 -0400)
tree2a0b4bee023b25558b457297116890a26e179de8
parent7e30dd618ebfe3ab1ed54f2e98ba75d799c0be20
block/backup: support bitmap sync modes for non-bitmap backups

Accept bitmaps and sync policies for the other backup modes.
This allows us to do things like create a bitmap synced to a full backup
without a transaction, or start a resumable backup process.

Some combinations don't make sense, though:

- NEVER policy combined with any non-BITMAP mode doesn't do anything,
  because the bitmap isn't used for input or output.
  It's harmless, but is almost certainly never what the user wanted.

- sync=NONE is more questionable. It can't use on-success because this
  job never completes with success anyway, and the resulting artifact
  of 'always' is suspect: because we start with a full bitmap and only
  copy out segments that get written to, the final output bitmap will
  always be ... a fully set bitmap.

  Maybe there's contexts in which bitmaps make sense for sync=none,
  but not without more severe changes to the current job, and omitting
  it here doesn't prevent us from adding it later.

Signed-off-by: John Snow <jsnow@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 20190716000117.25219-11-jsnow@redhat.com
Signed-off-by: John Snow <jsnow@redhat.com>
block/backup.c
blockdev.c
qapi/block-core.json