Status Update: Mono Flat Almost Ready
After one week’s work, our mono-flat support is now bound into vmdk. The
support includes probe, open, read, write, is_allocated and also
backing_hd of monolithicFlat type images.
Read/write are using the same routine with get_cluster_offset handling address
lookup. We can observe flat extent as a very large cluster, this view provides
inconsistent between flat and sparse extents. When look up an offset within
either format, we need a cluster_offset and index_in_cluster. So for flat the
cluster_offset is 0 and index_in_cluster is the sector index in the whole
extent.
There’s a bug that fails qemu-iotest 019(which writes to image that has
parent). The cause is that when allocating cluster that is not present,
get_whole_cluster reads from parent image, with an offset that is not aligned
to cluster, and write to the newly allocated cluster.
1 2 3 4 5 6 7 8 9 10 11 12 | |
This is obviously bug if offset is 512, and cluster_offset points to #0. To
correct it only one line is added ahead:
1 2 | |
That’s it.