On 6/26/13 5:47 PM, Stefan Behrens wrote:
> On 06/26/2013 21:55, Zach Brown wrote:
>>> +    if (!uuid_root) {
>>> +        WARN_ON_ONCE(1);
>>> +        ret = -ENOENT;
>>> +        goto out;
>>> +    }
>>
>> WARN_ON_ONCE specifically returns the condition so that you can write:
>>
>>     if (WARN_ON_ONCE(!uuid_root)) {
>>         ret = -ENOENT;
>>         goto out;
>>     }
>>
>>> +    while (item_size) {
>>> +        u64 data;
>>> +
>>> +        read_extent_buffer(eb, &data, offset, sizeof(data));
>>> +        data = le64_to_cpu(data);
>>> +        if (data == subid) {
>>> +            ret = 0;
>>> +            break;
>>> +        }
>>> +        offset += sizeof(data);
>>> +        item_size -= sizeof(data);
>>> +    }
>>
>> fs/btrfs/uuid-tree.c:81 col 24 warning: cast to restricted __le64
>>
>> There are a few more instances of this.  The good news is that fixing
>> the sparse warning makes the code better, too.
>>
>>         __le64 data;
>>
>>         read_extent_buffer(eb, &data, offset, sizeof(data));
>>         if (le64_to_cpu(data) == subid) {
>>
>> Plese make sure the rest of the series doesn't add sparse warnings for
>> Josef to get email about a few seconds after he merges.
>>
>>> +int btrfs_insert_uuid_subvol_item(struct btrfs_trans_handle *trans,
>>> +                  struct btrfs_root *uuid_root, u8 *uuid,
>>> +                  u64 subvol_id)
>>> +{
>>> +    int ret;
>>> +
>>> +    ret = btrfs_uuid_tree_lookup(uuid_root, uuid,
>>> +                     BTRFS_UUID_KEY_SUBVOL, subvol_id);
>>> +    if (ret == -ENOENT)
>>> +        ret = btrfs_uuid_tree_add(trans, uuid_root, uuid,
>>> +                      BTRFS_UUID_KEY_SUBVOL, subvol_id);
>>> +    return ret;
>>> +}
>>
>>
>>> +int btrfs_insert_uuid_received_subvol_item(struct btrfs_trans_handle 
>>> *trans,
>>> +                       struct btrfs_root *uuid_root,
>>> +                       u8 *uuid, u64 subvol_id)
>>> +{
>>> +    int ret;
>>> +
>>> +    ret = btrfs_uuid_tree_lookup(uuid_root, uuid,
>>> +                     BTRFS_UUID_KEY_RECEIVED_SUBVOL, subvol_id);
>>> +    if (ret == -ENOENT)
>>> +        ret = btrfs_uuid_tree_add(trans, uuid_root, uuid,
>>> +                      BTRFS_UUID_KEY_RECEIVED_SUBVOL,
>>> +                      subvol_id);
>>> +    return ret;
>>> +}
>>
>> Just have callers pass in the key type so we get slightly less enormous
>> function names and less cut-and-paste code.
> 
> Thanks for your comments, but this salami review procedure is not very 
> efficient. Everything that you comment on now and before is there since V1.

I'm not sure that makes it any less relevant.   We'd all like complete & early 
reviews, but unfortunately it's a busy, messy world.  Sparse will keep 
complaining even at V7 w/o fixing it.  :)  So better late than never, no?

> Please tell me when you are done with the full review. And please also stop 
> the bikeshedding.

Catching something new on the 2nd review pass isn't that unusual.  I tend to 
agree that not cutting & pasting 25 lines is a noble goal (not really 
bikeshedding) if all it takes is a key argument to avoid it... fs/btrfs is 
already plenty big.

Just my 2 cents.

-Eric
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to