26ba25
From 329a0c2d4967b6dac1530c010856119447385457 Mon Sep 17 00:00:00 2001
26ba25
From: John Snow <jsnow@redhat.com>
26ba25
Date: Tue, 25 Sep 2018 22:34:31 +0100
26ba25
Subject: [PATCH 28/28] blockdev: document transactional shortcomings
26ba25
26ba25
RH-Author: John Snow <jsnow@redhat.com>
26ba25
Message-id: <20180925223431.24791-26-jsnow@redhat.com>
26ba25
Patchwork-id: 82286
26ba25
O-Subject: [RHEL8/rhel qemu-kvm PATCH 25/25] blockdev: document transactional shortcomings
26ba25
Bugzilla: 1632939
26ba25
RH-Acked-by: Jeffrey Cody <jcody@redhat.com>
26ba25
RH-Acked-by: Max Reitz <mreitz@redhat.com>
26ba25
RH-Acked-by: Kevin Wolf <kwolf@redhat.com>
26ba25
26ba25
Presently only the backup job really guarantees what one would consider
26ba25
transactional semantics. To guard against someone helpfully adding them
26ba25
in the future, document that there are shortcomings in the model that
26ba25
would need to be audited at that time.
26ba25
26ba25
Signed-off-by: John Snow <jsnow@redhat.com>
26ba25
Message-id: 20180906130225.5118-17-jsnow@redhat.com
26ba25
Reviewed-by: Jeff Cody <jcody@redhat.com>
26ba25
Reviewed-by: Max Reitz <mreitz@redhat.com>
26ba25
Signed-off-by: Max Reitz <mreitz@redhat.com>
26ba25
(cherry picked from commit 66da04ddd3dcb8c61ee664b6faced132da002006)
26ba25
Signed-off-by: John Snow <jsnow@redhat.com>
26ba25
Signed-off-by: Danilo C. L. de Paula <ddepaula@redhat.com>
26ba25
---
26ba25
 blockdev.c | 8 +++++++-
26ba25
 1 file changed, 7 insertions(+), 1 deletion(-)
26ba25
26ba25
diff --git a/blockdev.c b/blockdev.c
26ba25
index bf026d2..b8e4b0d 100644
26ba25
--- a/blockdev.c
26ba25
+++ b/blockdev.c
26ba25
@@ -2292,7 +2292,13 @@ static const BlkActionOps actions[] = {
26ba25
         .instance_size = sizeof(BlockDirtyBitmapState),
26ba25
         .prepare = block_dirty_bitmap_disable_prepare,
26ba25
         .abort = block_dirty_bitmap_disable_abort,
26ba25
-     }
26ba25
+    },
26ba25
+    /* Where are transactions for MIRROR, COMMIT and STREAM?
26ba25
+     * Although these blockjobs use transaction callbacks like the backup job,
26ba25
+     * these jobs do not necessarily adhere to transaction semantics.
26ba25
+     * These jobs may not fully undo all of their actions on abort, nor do they
26ba25
+     * necessarily work in transactions with more than one job in them.
26ba25
+     */
26ba25
 };
26ba25
 
26ba25
 /**
26ba25
-- 
26ba25
1.8.3.1
26ba25