Am 10.02.2015 um 21:28 hat Max Reitz geschrieben: > As of version 3, the qcow2 file format supports different widths for > refcount entries, ranging from 1 to 64 bit (only powers of two). > Currently, qemu only supports 16 bit, which is the only width supported > by version 2 (compat=0.10) images. > > This series adds support to qemu for all other valid refcount orders. > This is mainly done by adding two function pointers into the > BDRVQcowState structure for reading and writing refcount values > independently of the current refcount entry width; all in-memory > refcount arrays (mostly cached refcount blocks) now are void pointers > and are accessed through these functions alone. > > Thanks to previous work of making the qemu code agnostic of e.g. the > number of refcount entries per refcount block, the rest is fairly > trivial. The most complex patch in this series is patch 21 which > implements changing the refcount order through qemu-img amend. > > To test different refcount widths, simply invoke the qemu-iotests check > program with -o refcount_bits=${your_desired_width}. The final test in > this series adds some tests for operations which do not work with > certain refcount orders and for refcount order amendment. > > In order for iotest 015 to succeed with refcount_bits=32 and > refcount_bits=64, this series depends on my series > "qcow2: Respect new_block in alloc_refcount_block()".
In order to avoid re-reviewing the same patches each time you post a new version, I applied patches 1 to 6 now. I'll continue with reviewing the rest later today. Kevin