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