This patch series adds zero data clusters to QED. Clusters can be marked as zero clusters to store zeroed regions in a space-efficient way. The patch never actually creates new zero clusters but includes the I/O path support code to handle them if they are used by an image file.
Image streaming and copy-on-read take advantage of zero data clusters to avoid expanding out zeroes from the backing file. Those features are separate patches that will come later but I'm presenting this patch now so we can get this core QED image format feature in before doing the first QEMU release containing QED. The first patch fixes up an issue with the QED merge where '^' characters were dropped from the QED specification. The last two patches document and implement zero clusters, which were originally implemented by Anthony Liguori <aligu...@us.ibm.com>.