[From John's original cover letter:] This is a new (very small) block job that writes a pattern into a bitmap. The only pattern implemented is the top allocation information.
This can be used to "recover" an incremental bitmap chain if an external snapshot was taken without creating a new bitmap first: any writes made to the image will be reflected by the allocation status and can be written back into a bitmap. This is useful for e.g. libvirt managing backup chains if a user creates an external snapshot outside of libvirt. v3: - Addressed a bit more feedback - Make it easier to decide if we want an x- prefix if we think there are more tweaks to be made to the interface - Drop dependency on John's JobRunner iotest series - Renumber the new iotest I know there was a lot of discussion about whether there are optimizations to be made with populating directly into the target bitmap rather than into a temporary that then gets merged in at the completion of the job, but the QMP aspect seems fairly stable. Even so, we may still want to consider using an x- prefix until we know for sure whether libvirt can make decent use of the interface. Eric Blake (1): bitmaps: Use x- prefix for block-dirty-bitmap-popluate John Snow (5): block: add bitmap-populate job blockdev: combine DriveBackupState and BlockdevBackupState qmp: expose block-dirty-bitmap-populate iotests: move bitmap helpers into their own file iotests: add 298 for block-dirty-bitmap-populate qapi/block-core.json | 66 + qapi/job.json | 6 +- qapi/transaction.json | 2 + include/block/block_int.h | 21 + block/bitmap-populate.c | 207 ++ blockdev.c | 104 +- blockjob.c | 3 +- MAINTAINERS | 1 + block/Makefile.objs | 1 + tests/qemu-iotests/257 | 110 +- tests/qemu-iotests/298 | 232 ++ tests/qemu-iotests/298.out | 4544 +++++++++++++++++++++++++++++++++ tests/qemu-iotests/bitmaps.py | 131 + tests/qemu-iotests/group | 1 + 14 files changed, 5300 insertions(+), 129 deletions(-) create mode 100644 block/bitmap-populate.c create mode 100755 tests/qemu-iotests/298 create mode 100644 tests/qemu-iotests/298.out create mode 100644 tests/qemu-iotests/bitmaps.py -- 2.27.0