On 23.04.2015 02:04, John Snow wrote:
This patch actually implements the transactional callback system
for the drive_backup action.
(1) We manually pick up a reference to the bitmap if present to allow
its cleanup to be delayed until after all drive_backup jobs launched
by the transaction have fully completed.
(2) We create a functional closure that envelops the original drive_backup
callback, to be able to intercept the completion status and return code
for the job.
(3) We add the drive_backup_cb method for the drive_backup action, which
unpacks the completion information and invokes the final cleanup.
(4) backup_transaction_complete will perform the final cleanup on the
backup job.
(5) In the case of transaction cancellation, drive_backup_cb is still
responsible for cleaning up the mess we may have already made.
Signed-off-by: John Snow <js...@redhat.com>
---
block/backup.c | 9 ++++++++
blockdev.c | 53 ++++++++++++++++++++++++++++++++++++++++++++---
include/block/block_int.h | 8 +++++++
3 files changed, 67 insertions(+), 3 deletions(-)
Reviewed-by: Max Reitz <mre...@redhat.com>