Am 12.03.2012 11:42, schrieb Avi Kivity: > On 03/09/2012 06:42 PM, Kevin Wolf wrote: >>>> >>>> While (3) can be worked around, the only way around the other two, >>>> unfortunately, is support in the formats and protocols. We will still >>>> provide device options to opt out of this, but with raw and qed covered >>>> (+ qcow2 without backing file, and qcow3 in the future) it should not >>>> be too bad. >>> >>> Can't qcow2 with a backing file also be supported? Zero out the first >>> cluster, and remember it. The following discards can reuse this zero >>> cluster, as long as it hasn't been overwritten. >> >> qcow2 can't handle clusters that are referenced twice from the same L1 >> table. This would require a reverse lookup to adjust the QCOW_O_COPIED >> flags in the L2 tables containing the other references. > > Don't follow, sorry. What adjustment are you talking about? > > If it's a 1->0 transition, is it mandatory to adjust the flag? That is, > it it legal to have a refcount of exactly one, but have the flag clear?
According to the spec it's illegal and qemu-img check will complain, too. In practice, I'm not entirely sure if it will cause real corruption or just unnecessary COWs. I believe it may be the latter. But it's not worth the trouble anyway when we can have a real zero flag in qcow3. Kevin