qcow2: introduce icount field for snapshots

This patch introduces the icount field for saving within the snapshot.
It is required for navigation between the snapshots in record/replay mode.

Signed-off-by: Pavel Dovgalyuk <Pavel.Dovgalyuk@ispras.ru>
Acked-by: Kevin Wolf <kwolf@redhat.com>

--

v7 changes:
 - also fix the test which checks qcow2 snapshot extra data
Message-Id: <160174518284.12451.2301137308458777398.stgit@pasha-ThinkPad-X280>

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
This commit is contained in:
Pavel Dovgalyuk 2020-10-03 20:13:02 +03:00 committed by Paolo Bonzini
parent 56db1198a4
commit bbacffc5f7
5 changed files with 58 additions and 23 deletions

View file

@ -12,9 +12,10 @@ Snapshots in TEST_DIR/t.IMGFMT.v2.orig:
[1]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
[2]
ID: 3
@ -29,22 +30,25 @@ Snapshots in TEST_DIR/t.IMGFMT.v3.orig:
[0]
ID: 1
Name: sn0
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[1]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
[2]
ID: 3
Name: sn2
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
=== Repair botched v3 ===
@ -61,22 +65,25 @@ Snapshots in TEST_DIR/t.IMGFMT:
[0]
ID: 1
Name: sn0
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[1]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
[2]
ID: 3
Name: sn2
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
=== Add new snapshot ===
@ -85,28 +92,32 @@ Snapshots in TEST_DIR/t.IMGFMT:
[0]
ID: 1
Name: sn0
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[1]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
[2]
ID: 3
Name: sn2
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[3]
ID: 4
Name: sn3
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 0
=== Remove different snapshots ===
@ -116,16 +127,18 @@ Snapshots in TEST_DIR/t.IMGFMT:
[0]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
[1]
ID: 3
Name: sn2
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
--- sn1 ---
No errors were found on the image.
@ -133,15 +146,17 @@ Snapshots in TEST_DIR/t.IMGFMT:
[0]
ID: 1
Name: sn0
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[1]
ID: 3
Name: sn2
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
--- sn2 ---
No errors were found on the image.
@ -149,15 +164,17 @@ Snapshots in TEST_DIR/t.IMGFMT:
[0]
ID: 1
Name: sn0
Extra data size: 16
Extra data size: 24
VM state size: 0
Disk size: 67108864
Icount: 18446744073709551615
[1]
ID: 2
Name: sn1
Extra data size: 42
Extra data size: 50
VM state size: 0
Disk size: 67108864
Icount: 0
Unknown extra data: very important data
=== Reject too much unknown extra data ===