On 13.10.2016 18:48, Vladimir Sementsov-Ogievskiy wrote:
> On 07.10.2016 22:24, Max Reitz wrote:
>> On 30.09.2016 12:53, Vladimir Sementsov-Ogievskiy wrote:
>>> Realize block bitmap stroing interface, to allow qcow2 images store
>
> [snip]
>
>>> + uint64_t end = MIN(bm_size, sector + dsc);
>>> + uint64_t write_size =
>>> + bdrv_dirty_bitmap_serialization_size(bitmap, sector, end
>>> - sector);
>>> +
>>> + int64_t off = qcow2_alloc_clusters(bs, cl_size);
>>> + if (off < 0) {
>>> + ret = off;
>>> + goto finish;
>>> + }
>>> + bitmap_table[cluster] = off;
>>> +
>>> + bdrv_dirty_bitmap_serialize_part(bitmap, buf, sector, end);
>> s/end/end - sector/?
>
> o_0 terrible mistake, thank you.
>
>>
>>> + if (write_size < cl_size) {
>>> + memset(buf + write_size, 0, cl_size - write_size);
>>> + }
>>> +
>> I guess there should be a metadata overlap check here.
>
> What is the general rule of checking it? Should I check it before all my
> extension related writes?The general rule is supposed to be "One check before every write to bs->file". Max
signature.asc
Description: OpenPGP digital signature
