On 6/3/19 8:00 AM, Vladimir Sementsov-Ogievskiy wrote:
> 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.
> 

Oh, interesting. I see why you want this now. OK, let's do it.

> 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(-)
> 


Reply via email to