mirror of
https://github.com/Motorhead1991/qemu.git
synced 2025-08-07 17:53:56 -06:00
qcow2: Keep unknown extra snapshot data
The qcow2 specification says to ignore unknown extra data fields in snapshot table entries. Currently, we discard it whenever we update the image, which is a bit different from "ignore". This patch makes the qcow2 driver keep all unknown extra data fields when updating an image's snapshot table. Signed-off-by: Max Reitz <mreitz@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-id: 20191011152814.14791-5-mreitz@redhat.com [mreitz: Adjusted comments as proposed by Eric] Signed-off-by: Max Reitz <mreitz@redhat.com>
This commit is contained in:
parent
ecf6c7c0c1
commit
fcf9a6b728
2 changed files with 58 additions and 10 deletions
|
@ -61,6 +61,9 @@
|
|||
* space for snapshot names and IDs */
|
||||
#define QCOW_MAX_SNAPSHOTS_SIZE (1024 * QCOW_MAX_SNAPSHOTS)
|
||||
|
||||
/* Maximum amount of extra data per snapshot table entry to accept */
|
||||
#define QCOW_MAX_SNAPSHOT_EXTRA_DATA 1024
|
||||
|
||||
/* Bitmap header extension constraints */
|
||||
#define QCOW2_MAX_BITMAPS 65535
|
||||
#define QCOW2_MAX_BITMAP_DIRECTORY_SIZE (1024 * QCOW2_MAX_BITMAPS)
|
||||
|
@ -181,6 +184,10 @@ typedef struct QCowSnapshot {
|
|||
uint32_t date_sec;
|
||||
uint32_t date_nsec;
|
||||
uint64_t vm_clock_nsec;
|
||||
/* Size of all extra data, including QCowSnapshotExtraData if available */
|
||||
uint32_t extra_data_size;
|
||||
/* Data beyond QCowSnapshotExtraData, if any */
|
||||
void *unknown_extra_data;
|
||||
} QCowSnapshot;
|
||||
|
||||
struct Qcow2Cache;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue