From 3e0ff815da32944228b49c4ad33957c63dfd0f99 Mon Sep 17 00:00:00 2001 From: John Snow Date: Mon, 10 Sep 2018 18:18:03 +0200 Subject: [PATCH 25/25] blockdev: document transactional shortcomings RH-Author: John Snow Message-id: <20180910181803.11781-26-jsnow@redhat.com> Patchwork-id: 82087 O-Subject: [RHEL-7.6 qemu-kvm-rhev PATCH 25/25] blockdev: document transactional shortcomings Bugzilla: 1626061 RH-Acked-by: Max Reitz RH-Acked-by: Jeffrey Cody RH-Acked-by: Kevin Wolf Presently only the backup job really guarantees what one would consider transactional semantics. To guard against someone helpfully adding them in the future, document that there are shortcomings in the model that would need to be audited at that time. Signed-off-by: John Snow Message-id: 20180906130225.5118-17-jsnow@redhat.com Reviewed-by: Jeff Cody Reviewed-by: Max Reitz Signed-off-by: Max Reitz (cherry picked from commit 97169e9959811e92e14c42afa0ec1fdeb09715ea) Signed-off-by: John Snow Signed-off-by: Miroslav Rezanina --- blockdev.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/blockdev.c b/blockdev.c index 6325471..0eb6bba 100644 --- a/blockdev.c +++ b/blockdev.c @@ -2333,7 +2333,13 @@ static const BlkActionOps actions[] = { .instance_size = sizeof(BlockDirtyBitmapState), .prepare = block_dirty_bitmap_disable_prepare, .abort = block_dirty_bitmap_disable_abort, - } + }, + /* Where are transactions for MIRROR, COMMIT and STREAM? + * Although these blockjobs use transaction callbacks like the backup job, + * these jobs do not necessarily adhere to transaction semantics. + * These jobs may not fully undo all of their actions on abort, nor do they + * necessarily work in transactions with more than one job in them. + */ }; /** -- 1.8.3.1