qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PATCH v5 04/23] qcow2: Switch is_zero_sectors() to byt


From: Eric Blake
Subject: Re: [Qemu-devel] [PATCH v5 04/23] qcow2: Switch is_zero_sectors() to byte-based
Date: Tue, 10 Oct 2017 09:47:31 -0500
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0

On 10/10/2017 09:15 AM, Kevin Wolf wrote:
> Am 04.10.2017 um 04:00 hat Eric Blake geschrieben:
>> We are gradually converting to byte-based interfaces, as they are
>> easier to reason about than sector-based.  Convert another internal
>> function (no semantic change), and rename it to is_zero() in the
>> process.
>>
>> Signed-off-by: Eric Blake <address@hidden>
>> Reviewed-by: Fam Zheng <address@hidden>
>> Reviewed-by: John Snow <address@hidden>
>>

>> +static bool is_zero(BlockDriverState *bs, int64_t offset, int64_t bytes)
>>  {
>>      int nr;
>>      int64_t res;
>> +    int64_t start;
>>
>> -    if (start + count > bs->total_sectors) {
>> -        count = bs->total_sectors - start;
>> +    /* Widen to sector boundaries, then clamp to image length, before
>> +     * checking status of underlying sectors */
>> +    start = QEMU_ALIGN_DOWN(offset, BDRV_SECTOR_SIZE);
>> +    bytes = QEMU_ALIGN_UP(offset + bytes, BDRV_SECTOR_SIZE) - start;
> 
> Why do we still widen to sector boundaries after this series is fully
> applied? Isn't the whole point that we don't have to do this any more?

The widening is necessary as long as...

>> +    res = bdrv_get_block_status_above(bs, NULL, start >> BDRV_SECTOR_BITS,
>> +                                      bytes >> BDRV_SECTOR_BITS, &nr, NULL);

we still shift. But you are right; patch 12/23 should be able to drop
the rounding.  I'll double check that it still works, but assuming that
it does, v6 will include that cleanup.

-- 
Eric Blake, Principal Software Engineer
Red Hat, Inc.           +1-919-301-3266
Virtualization:  qemu.org | libvirt.org

Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]