Stefan Hajnoczi <stefa...@redhat.com> writes: > This patch removes support for the cow file format. > > Normally we do not break backwards compatibility but in this case there > is no impact and it is the most logical option. Extraordinary claims > require extraordinary evidence so I will show why removing the cow block > driver is the right thing to do. > > The cow file format is the disk image format for Usermode Linux, a way > of running a Linux system in userspace. The performance of UML was > never great and it was hacky, but it enjoyed some popularity before > hardware virtualization support became mainstream. > > QEMU's block/cow.c is supposed to read this image file format. > Unfortunately the file format was underspecified: > > 1. Earlier Linux versions used the MAXPATHLEN constant for the backing > filename field. The value of MAXPATHLEN can change, so Linux > switched to a 4096 literal but QEMU has a 1024 literal. > > 2. Padding was not used on the header struct (both in the Linux kernel > and in QEMU) so the struct layout varied across architectures. In > particular, i386 and x86_64 were different due to int64_t alignment > differences. Linux now uses __attribute__((packed)), QEMU does not. > > Therefore: > > 1. QEMU cow images do not conform to the Linux cow image file format. > > 2. cow images cannot be shared between different host architectures. > > This means QEMU cow images are useless and QEMU has not had bug reports > from users actually hitting these issues. > > Let's get rid of this thing, it serves no purpose and no one will be > affected. > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Markus Armbruster <arm...@redhat.com>