The following changes since commit 257bf4f160c50ca8c4ebd603f519f5c786013fb7:
Merge tag 'for-upstream' of https://gitlab.com/bonzini/qemu into staging (2026-09-10 11:08:04 +0100)
are available in the Git repository at:
https://gitlab.com/dlunev/qemu.git tags/pull-parallels-2026-09-11
for you to fetch changes up to 94336eedb1c98792d595f729c7a284e9e91e6158:
tests: Add parallels format support to image-fleecing (2026-09-11 00:54:38 +0200)
----------------------------------------------------------------
parallels patches
- harden the Format Extension parser against a crafted image
- add persistent dirty bitmap support: store, remove and report them
- let image extensions be updated in read-write mode
- make qemu-img check report the damage it is meant to report
instead of dying on it
- drop the unused clusters at the end of the image
- cover the new behaviour in the parallels iotests, and run more of
the generic ones on parallels
Signed-off-by: Denis V. Lunev <den@openvz.org>
CC: Stefan Hajnoczi <stefanha@redhat.com>
CC: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru>
----------------------------------------------------------------
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 (25):
parallels: fix out-of-bounds read in format extension parsing
parallels: validate dirty bitmap granularity
parallels: bound the bitmap L1 table against the bitmap size
parallels: reject a Format Extension outside the image file
parallels: allocate the Format Extension cluster gracefully
parallels: fix GSList leak on the format extension success path
iotests: cover the Parallels format extension parser
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
iotests: rename parallels-read-bitmap to parallels-bitmap
iotests: cover a broken Format Extension and a combined repair
tests: Add parallels format support to image-fleecing
block/parallels-ext.c | 457 ++++++++++++++++++++-
block/parallels.c | 432 ++++++++++++-------
block/parallels.h | 20 +-
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 +
tests/qemu-iotests/tests/inactive-node-nbd.out | 8 +
tests/qemu-iotests/tests/parallels-bitmap | 260 ++++++++++++
tests/qemu-iotests/tests/parallels-bitmap.out | 49 +++
tests/qemu-iotests/tests/parallels-checks | 229 +++++++++++
tests/qemu-iotests/tests/parallels-checks.out | 174 ++++++++
tests/qemu-iotests/tests/parallels-read-bitmap | 53 ---
tests/qemu-iotests/tests/parallels-read-bitmap.out | 6 -
17 files changed, 1498 insertions(+), 244 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