5b15e2ecaf
Notable changes: * The only big change is the switch to using a custom QIOChannel for savevm-async, because the previously used QEMUFileOps was dropped. Changes to the current implementation: * Switch to vector based methods as required for an IO channel. For short reads the passed-in IO vector is stuffed with zeroes at the end, just to be sure. * For reading: The documentation in include/io/channel.h states that at least one byte should be read, so also error out when whe are at the very end instead of returning 0. * For reading: Fix off-by-one error when request goes beyond end. The wrong code piece was: if ((pos + size) > maxlen) { size = maxlen - pos - 1; } Previously, the last byte would not be read. It's actually possible to get a snapshot .raw file that has content all the way up the final 512 byte (= BDRV_SECTOR_SIZE) boundary without any trailing zero bytes (I wrote a script to do it). Luckily, it didn't cause a real issue, because qemu_loadvm_state() is not interested in the final (i.e. QEMU_VM_VMDESCRIPTION) section. The buffer for reading it is simply freed up afterwards and the function will assume that it read the whole section, even if that's not the case. * For writing: Make use of the generated blk_pwritev() wrapper instead of manually wrapping the coroutine to simplify and save a few lines. * Adapt to changed interfaces for blk_{pread,pwrite}: * a9262f551e ("block: Change blk_{pread,pwrite}() param order") * 3b35d4542c ("block: Add a 'flags' param to blk_pread()") * bf5b16fa40 ("block: Make blk_{pread,pwrite}() return 0 on success") Those changes especially affected the qemu-img dd patches, because the context also changed, but also some of our block drivers used the functions. * Drop qemu-common.h include: it got renamed after essentially everything was moved to other headers. The only remaining user I could find for things dropped from the header between 7.0 and 7.1 was qemu_get_vm_name() in the iscsi-initiatorname patch, but it already includes the header to which the function was moved. Signed-off-by: Fiona Ebner <f.ebner@proxmox.com> |
||
---|---|---|
.. | ||
0001-PVE-Config-block-file-change-locking-default-to-off.patch | ||
0002-PVE-Config-Adjust-network-script-path-to-etc-kvm.patch | ||
0003-PVE-Config-set-the-CPU-model-to-kvm64-32-instead-of-.patch | ||
0004-PVE-Config-ui-spice-default-to-pve-certificates.patch | ||
0005-PVE-Config-glusterfs-no-default-logfile-if-daemonize.patch | ||
0006-PVE-Config-rbd-block-rbd-disable-rbd_cache_writethro.patch | ||
0007-PVE-Up-qmp-add-get_link_status.patch | ||
0008-PVE-Up-glusterfs-allow-partial-reads.patch | ||
0009-PVE-Up-qemu-img-return-success-on-info-without-snaps.patch | ||
0010-PVE-Up-qemu-img-dd-add-osize-and-read-from-to-stdin-.patch | ||
0011-PVE-Up-qemu-img-dd-add-isize-parameter.patch | ||
0012-PVE-Up-qemu-img-dd-add-n-skip_create.patch | ||
0013-PVE-virtio-balloon-improve-query-balloon.patch | ||
0014-PVE-qapi-modify-query-machines.patch | ||
0015-PVE-qapi-modify-spice-query.patch | ||
0016-PVE-add-IOChannel-implementation-for-savevm-async.patch | ||
0017-PVE-add-savevm-async-for-background-state-snapshots.patch | ||
0018-PVE-add-optional-buffer-size-to-QEMUFile.patch | ||
0019-PVE-block-add-the-zeroinit-block-driver-filter.patch | ||
0020-PVE-Add-dummy-id-command-line-parameter.patch | ||
0021-PVE-Config-Revert-target-i386-disable-LINT0-after-re.patch | ||
0022-PVE-Up-Config-file-posix-make-locking-optiono-on-cre.patch | ||
0023-PVE-monitor-disable-oob-capability.patch | ||
0024-PVE-Compat-4.0-used-balloon-qemu-4-0-config-size-fal.patch | ||
0025-PVE-Allow-version-code-in-machine-type.patch | ||
0026-block-backup-move-bcs-bitmap-initialization-to-job-c.patch | ||
0027-PVE-Backup-add-vma-backup-format-code.patch | ||
0028-PVE-Backup-add-backup-dump-block-driver.patch | ||
0029-PVE-Backup-proxmox-backup-patches-for-qemu.patch | ||
0030-PVE-Backup-pbs-restore-new-command-to-restore-from-p.patch | ||
0031-PVE-Backup-Add-dirty-bitmap-tracking-for-incremental.patch | ||
0032-PVE-various-PBS-fixes.patch | ||
0033-PVE-Add-PBS-block-driver-to-map-backup-archives-into.patch | ||
0034-PVE-add-query_proxmox_support-QMP-command.patch | ||
0035-PVE-add-query-pbs-bitmap-info-QMP-call.patch | ||
0036-PVE-redirect-stderr-to-journal-when-daemonized.patch | ||
0037-PVE-Add-sequential-job-transaction-support.patch | ||
0038-PVE-Backup-Use-a-transaction-to-synchronize-job-stat.patch | ||
0039-PVE-Backup-Don-t-block-on-finishing-and-cleanup-crea.patch | ||
0040-PVE-Migrate-dirty-bitmap-state-via-savevm.patch | ||
0041-migration-block-dirty-bitmap-migrate-other-bitmaps-e.patch | ||
0042-PVE-fall-back-to-open-iscsi-initiatorname.patch | ||
0043-PVE-Use-coroutine-QMP-for-backup-cancel_backup.patch | ||
0044-PBS-add-master-key-support.patch | ||
0045-PVE-block-pbs-fast-path-reads-without-allocation-if-.patch | ||
0046-PVE-block-stream-increase-chunk-size.patch | ||
0047-block-io-accept-NULL-qiov-in-bdrv_pad_request.patch | ||
0048-block-add-alloc-track-driver.patch | ||
0049-PVE-whitelist-invalid-QAPI-names-for-backwards-compa.patch | ||
0050-PVE-savevm-async-register-yank-before-migration_inco.patch | ||
0051-qemu-img-dd-add-l-option-for-loading-a-snapshot.patch | ||
0052-vma-allow-partial-restore.patch | ||
0053-pbs-namespace-support.patch | ||
0054-Revert-block-rbd-workaround-for-ceph-issue-53784.patch | ||
0055-Revert-block-rbd-fix-handling-of-holes-in-.bdrv_co_b.patch | ||
0056-Revert-block-rbd-implement-bdrv_co_block_status.patch | ||
0057-PVE-Backup-create-jobs-correctly-cancel-in-error-sce.patch | ||
0058-PVE-Backup-ensure-jobs-in-di_list-are-referenced.patch | ||
0059-PVE-Backup-avoid-segfault-issues-upon-backup-cancel.patch | ||
0060-vma-create-support-64KiB-unaligned-input-images.patch | ||
0061-vma-create-avoid-triggering-assertion-in-error-case.patch | ||
0062-block-alloc-track-avoid-premature-break.patch | ||
0063-PVE-Backup-allow-passing-max-workers-performance-set.patch |