qemu-devel
[Top][All Lists]
Advanced

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

Re: [Qemu-devel] [RFC PATCH v2 13/23] qcow2: handle_copied(): Implement


From: Kevin Wolf
Subject: Re: [Qemu-devel] [RFC PATCH v2 13/23] qcow2: handle_copied(): Implement non-zero host_offset
Date: Thu, 14 Feb 2013 10:40:19 +0100
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:13.0) Gecko/20120605 Thunderbird/13.0

Am 13.02.2013 22:17, schrieb Blue Swirl:
> On Wed, Feb 13, 2013 at 1:22 PM, Kevin Wolf <address@hidden> wrote:
>> Look only for clusters that start at a given physical offset.
>>
>> Signed-off-by: Kevin Wolf <address@hidden>
>> ---
>>  block/qcow2-cluster.c |   26 ++++++++++++++++++--------
>>  1 files changed, 18 insertions(+), 8 deletions(-)
>>
>> diff --git a/block/qcow2-cluster.c b/block/qcow2-cluster.c
>> index 5ce2c88..90fe36c 100644
>> --- a/block/qcow2-cluster.c
>> +++ b/block/qcow2-cluster.c
>> @@ -827,8 +827,6 @@ static int handle_dependencies(BlockDriverState *bs, 
>> uint64_t guest_offset,
>>   *          the length of the area that can be written to.
>>   *
>>   *  -errno: in error cases
>> - *
>> - * TODO Make non-zero host_offset behave like describe above
>>   */
>>  static int handle_copied(BlockDriverState *bs, uint64_t guest_offset,
>>      uint64_t *host_offset, uint64_t *bytes, QCowL2Meta **m)
>> @@ -843,7 +841,6 @@ static int handle_copied(BlockDriverState *bs, uint64_t 
>> guest_offset,
>>
>>      trace_qcow2_handle_copied(qemu_coroutine_self(), guest_offset, 
>> *host_offset,
>>                                *bytes);
>> -    assert(*host_offset == 0);
>>
>>      /*
>>       * Calculate the number of clusters to look for. We stop at L2 table
>> @@ -867,6 +864,15 @@ static int handle_copied(BlockDriverState *bs, uint64_t 
>> guest_offset,
>>      if (qcow2_get_cluster_type(cluster_offset) == QCOW2_CLUSTER_NORMAL
>>          && (cluster_offset & QCOW_OFLAG_COPIED))
>>      {
>> +        /* If a specific host_offset is required, check it */
>> +        if (*host_offset != 0
>> +            && (cluster_offset & L2E_OFFSET_MASK) != *host_offset)
>> +        {
> 
> Braces should cuddle with the previous line.

Can we get rid of this rule for multiline ifs? Having the
second/third/... line of the condition and the first line of the then
branch with no clear separation severely hurts readability in my opinion.

> 
>> +            *bytes = 0;
>> +            ret = 0;
>> +            goto out;
>> +        }
>> +
>>          /* We keep all QCOW_OFLAG_COPIED clusters */
>>          keep_clusters =
>>              count_contiguous_clusters(nb_clusters, s->cluster_size,

Kevin



reply via email to

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