80e28a00ec
- unmodified_drivers: handle IRQF_SAMPLE_RANDOM, it was removed in 3.6-rc1 - bnc#778105 - first XEN-PV VM fails to spawn xend: Increase wait time for disk to appear in host bootloader Modified existing xen-domUloader.diff - Disable the snapshot patches. Snapshot only supported the qcow2 image format which was poorly implemented qemu 0.10.2. Snapshot support may be restored in the future when the newer upstream qemu is used by Xen. - bnc#776995 - attaching scsi control luns with pvscsi - xend/pvscsi: fix passing of SCSI control LUNs xen-bug776995-pvscsi-no-devname.patch - xend/pvscsi: fix usage of persistant device names for SCSI devices xen-bug776995-pvscsi-persistent-names.patch - xend/pvscsi: update sysfs parser for Linux 3.0 xen-bug776995-pvscsi-sysfs-parser.patch - Update to Xen 4.2.0 RC3+ c/s 25779 - Update to Xen 4.2.0 RC2+ c/s 25765 OBS-URL: https://build.opensuse.org/package/show/Virtualization/xen?expand=0&rev=199
33 lines
1.1 KiB
Diff
33 lines
1.1 KiB
Diff
qcow2 corruption: Fix alloc_cluster_link_l2 (Kevin Wolf)
|
|
|
|
This patch fixes a qcow2 corruption bug introduced in SVN Rev 5861. L2 tables
|
|
are big endian, so entries must be converted before being passed to functions.
|
|
|
|
This bug is easy to trigger. The following script will create and destroy a
|
|
qcow2 image (the header is gone after three loop iterations):
|
|
|
|
#!/bin/bash
|
|
qemu-img create -f qcow2 test.qcow 1M
|
|
for i in $(seq 1 10); do
|
|
qemu-system-x86_64 -hda test.qcow -monitor stdio > /dev/null 2>&1 <<EOF
|
|
savevm test-$i
|
|
quit
|
|
EOF
|
|
done
|
|
|
|
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
|
|
|
|
Index: xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
|
|
===================================================================
|
|
--- xen-4.2.0-testing.orig/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
|
|
+++ xen-4.2.0-testing/tools/qemu-xen-traditional-dir-remote/block-qcow2.c
|
|
@@ -916,7 +916,7 @@ static int alloc_cluster_link_l2(BlockDr
|
|
goto err;
|
|
|
|
for (i = 0; i < j; i++)
|
|
- free_any_clusters(bs, old_cluster[i], 1);
|
|
+ free_any_clusters(bs, be64_to_cpu(old_cluster[i]) & ~QCOW_OFLAG_COPIED, 1);
|
|
|
|
ret = 0;
|
|
err:
|