[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PULL 16/42] blockdev: document transactional shortcomings
From: |
Max Reitz |
Subject: |
[Qemu-devel] [PULL 16/42] blockdev: document transactional shortcomings |
Date: |
Tue, 25 Sep 2018 17:15:15 +0200 |
From: John Snow <address@hidden>
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 <address@hidden>
Message-id: address@hidden
Reviewed-by: Jeff Cody <address@hidden>
Reviewed-by: Max Reitz <address@hidden>
Signed-off-by: Max Reitz <address@hidden>
---
blockdev.c | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
diff --git a/blockdev.c b/blockdev.c
index 0cf8febe6c..d4b42403df 100644
--- a/blockdev.c
+++ b/blockdev.c
@@ -2182,7 +2182,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.
+ */
};
/**
--
2.17.1
- [Qemu-devel] [PULL 05/42] block/mirror: don't install backing chain on abort, (continued)
- [Qemu-devel] [PULL 05/42] block/mirror: don't install backing chain on abort, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 01/42] block/commit: add block job creation flags, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 02/42] block/mirror: add block job creation flags, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 06/42] block/mirror: conservative mirror_exit refactor, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 07/42] block/stream: refactor stream to use job callbacks, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 08/42] tests/blockjob: replace Blockjob with Job, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 09/42] tests/test-blockjob: remove exit callback, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 10/42] tests/test-blockjob-txn: move .exit to .clean, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 12/42] qapi/block-commit: expose new job properties, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 11/42] jobs: remove .exit callback, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 16/42] blockdev: document transactional shortcomings,
Max Reitz <=
- [Qemu-devel] [PULL 17/42] commit: Add top-node/base-node options, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 15/42] block/backup: qapi documentation fixup, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 14/42] qapi/block-stream: expose new job properties, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 13/42] qapi/block-mirror: expose new job properties, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 18/42] qemu-iotests: Test commit with top-node/base-node, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 19/42] block/linux-aio: acquire AioContext before qemu_laio_process_completions, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 20/42] block: Fix use after free error in bdrv_open_inherit(), Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 21/42] qemu-iotests: Test snapshot=on with nonexistent TMPDIR, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 22/42] util/async: use qemu_aio_coroutine_enter in co_schedule_bh_cb, Max Reitz, 2018/09/25
- [Qemu-devel] [PULL 24/42] job: Fix missing locking due to mismerge, Max Reitz, 2018/09/25