On 27.03.2015 20:20, John Snow wrote:
This patch actually implements the transactional callback system for the drive_backup transaction.
This line is probably not intended to be indented (I always wanted to make that pun).
(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 | 52 ++++++++++++++++++++++++++++++++++++++++++++--- include/block/block_int.h | 8 ++++++++ 3 files changed, 66 insertions(+), 3 deletions(-)
With that fixed: Reviewed-by: Max Reitz <mre...@redhat.com>