Hi all! Here is block-dirty-bitmap-remove transaction action.
It is used to do transactional movement of the bitmap (which is possible in conjunction with merge command). Transactional bitmap movement is needed in scenarios with external snapshot, when we don't want to leave copy of the bitmap in the base image. Implementation itself in 03, in short: .prepare: make bitmap unnamed and non-persistent, delete stored version of the bitmap from the image .commit: release bitmap .abort: restore bitmap name and persistence. We don't restore bitmap version in the image. It's not critical, we have in-RAM version, it will be stored on shutdown Vladimir Sementsov-Ogievskiy (4): blockdev: reduce aio_context locked sections in bitmap add/remove block/dirty-bitmap: add hide/unhide API qapi: implement block-dirty-bitmap-remove transaction action iotests: test bitmap moving inside 254 qapi/transaction.json | 2 + include/block/dirty-bitmap.h | 2 + block/dirty-bitmap.c | 26 +++++++++ blockdev.c | 100 +++++++++++++++++++++++++++-------- tests/qemu-iotests/254 | 30 ++++++++++- tests/qemu-iotests/254.out | 82 ++++++++++++++++++++++++++++ 6 files changed, 219 insertions(+), 23 deletions(-) -- 2.18.0