Parallels format driver:
* make some preparation
* add dirty bitmap saving
* make dirty bitmap RW
* fix broken checks
* refactor leak check
* add parallels format support to several tests

Alexander left the team, so v6 comes from me. v5 was:

https://lore.kernel.org/qemu-devel/[email protected]/

It does not apply to master, it goes on top of "[PATCH 0/8] parallels:
fix Format Extension parsing", which applies to commit 3e3ccab106f8
("Update version for v11.1.0-rc3 release"):

https://lore.kernel.org/qemu-devel/[email protected]/

v6:
Reworked, so the numbers have shifted.
2: Made it .bdrv_inactivate and armed the in use flag on activation.
3: New patch, inactivating a read-only node.
5: cluster_end is uint64_t.
6: Absorbed the mark_unused helper, fixed the used bitmap growth.
7: New patch, the check no longer dies on what it is meant to report.
9: Absorbed the three parallels_check_leak() patches and the truncation.
10: Dropped the redundant bdrv_pwrite_zeroes() of the reuse branch.
11: Refuse a bitmap which does not fit, report a lost one, added ext_end.
12: Absorbed "Make a loaded dirty bitmap persistent", drop a broken one.
13: Bound the search by the region rather than by the cluster.
14: New patch, the Format Extension against the leak check.
15: Skipped test_reopen_rw, the bitmap name is a UUID.
16: New patch, a bitmap L1 entry has to point inside the data area.
17: Mark the bitmaps inconsistent instead of skipping the load.
18: New patch, block-dirty-bitmap-remove reaches the image.
19: New patch, qemu-img info reports the bitmaps.
20: New patch, renames parallels-read-bitmap to parallels-bitmap.
21: New patch, covers storing a bitmap.
22: New patch, covers the qemu-img bitmap sub-commands.
23: New patch, covers a broken Format Extension and a combined repair.
25: Added a comment about the bitmap name.
Dropped "Preserve extensions cluster for non-transient extensions" and
"Reverse a conditional in parallels_check_leak()".

Signed-off-by: Denis V. Lunev <[email protected]>
Cc: Stefan Hajnoczi <[email protected]>

Alexander Ivanov (4):
  parallels: Set s->used_bmap to NULL in parallels_free_used_bitmap()
  parallels: Make mark_used() a global function
  parallels: Create used bitmap even if checks needed
  tests: Turned on 256, 299, 304 and block-status-cache for parallels
    format

Denis V. Lunev (21):
  parallels: split inactivation out and add the activation counterpart
  iotests: cover inactivating a read-only node
  parallels: Limit search in parallels_mark_used to the last marked
    cluster
  parallels: Move host clusters allocation to a separate function
  parallels: do not let the check die on what it is meant to report
  parallels: Drop unused clusters at the end of the image
  parallels: Remove unnecessary data_end field
  parallels: Add dirty bitmaps saving
  parallels: Let image extensions work in RW mode
  parallels: Handle L1 entries equal to one
  iotests: cover the Format Extension against the leak check
  iotests: run the persistent dirty bitmap test on parallels
  parallels: reject a bitmap L1 entry outside the data area
  parallels: do not trust the bitmaps of an image which was not closed
  parallels: implement removing a stored dirty bitmap
  parallels: report the stored dirty bitmaps in qemu-img info
  iotests: rename parallels-read-bitmap to parallels-bitmap
  iotests: cover storing a parallels dirty bitmap
  iotests: cover the qemu-img bitmap operations on parallels
  iotests: cover a broken Format Extension and a combined repair
  tests: Add parallels format support to image-fleecing

 block/parallels-ext.c                         | 433 +++++++++++++++-
 block/parallels.c                             | 455 +++++++++++------
 block/parallels.h                             |  23 +-
 qapi/block-core.json                          |  40 +-
 tests/qemu-iotests/165                        |  18 +-
 tests/qemu-iotests/256                        |   2 +-
 tests/qemu-iotests/299                        |   2 +-
 tests/qemu-iotests/304                        |   2 +-
 tests/qemu-iotests/tests/block-status-cache   |   2 +-
 tests/qemu-iotests/tests/image-fleecing       |  14 +-
 tests/qemu-iotests/tests/inactive-node-nbd    |  14 +
 .../qemu-iotests/tests/inactive-node-nbd.out  |   8 +
 tests/qemu-iotests/tests/parallels-bitmap     | 471 ++++++++++++++++++
 tests/qemu-iotests/tests/parallels-bitmap.out | 106 ++++
 tests/qemu-iotests/tests/parallels-checks     | 236 +++++++++
 tests/qemu-iotests/tests/parallels-checks.out | 185 +++++++
 .../qemu-iotests/tests/parallels-read-bitmap  | 231 ---------
 .../tests/parallels-read-bitmap.out           |  39 --
 18 files changed, 1827 insertions(+), 454 deletions(-)
 create mode 100755 tests/qemu-iotests/tests/parallels-bitmap
 create mode 100644 tests/qemu-iotests/tests/parallels-bitmap.out
 delete mode 100755 tests/qemu-iotests/tests/parallels-read-bitmap
 delete mode 100644 tests/qemu-iotests/tests/parallels-read-bitmap.out

-- 
2.53.0


Reply via email to