In this patchset there are two main features:
1. Introduce Qcow2 extensions.
2. Keep backing file format such that no probing is needed.
1. Qcow2 extensions are build of magic (id) len (in bytes) and data.
They reside between the end of the header and the backing filename (if exists).
Unknown extensions are ignored (assumed to be added by a newer version)
Based on a work done by Shahar Frank.
2. By keeping the backing file format we:
a. Provide a way to know the backing file format without probing
it (setting the format at creation time).
b. Enable using qcow2 format over host block devices.
(only if the user specifically asks for it, by providing the format
at creation time).
I've added bdrv_create2 and drv->bdrv_create2 (implemented only
by block-qcow2 currently) to pass the backing-format to create.
Also fixes a security flaw found by Daniel P. Berrange on [1]
which summarizes: "Autoprobing: just say no."
[1] http://lists.gnu.org/archive/html/qemu-devel/2008-12/msg01083.html
Changes from v6:
Rebased.
Postponed highest-allocated-block patches.