Hello,
>
> On Fri, March 22, 2013 at 12:53 (+0100), Wang Shilong wrote:
>> From: Wang Shilong <wangsl-fnst@xxxxxxxxxxxxxx>
>>
>> Since btrfs quota rescan has not been implemented yet,
>> a user complains that "btrfs qgroup show" lists qgroup
>> referenced/exclusive be negative. However, this should
>> not happen even if overflow happens,because the type for
>> qgroup referenced/exclusive is u64,fix it.
>>
>> Signed-off-by: Wang Shilong <wangsl-fnst@xxxxxxxxxxxxxx>
>> Reported-by: Koen De Wit <koen.de.wit@xxxxxxxxxx>
>> ---
>> cmds-qgroup.c | 2 +-
>> 1 file changed, 1 insertion(+), 1 deletion(-)
>>
>> diff --git a/cmds-qgroup.c b/cmds-qgroup.c
>> index 60ca33d..fc4cb13 100644
>> --- a/cmds-qgroup.c
>> +++ b/cmds-qgroup.c
>> @@ -105,7 +105,7 @@ static int qgroup_create(int create, int argc, char **argv)
>>
>> void print_qgroup_info(u64 objectid, struct btrfs_qgroup_info_item *info)
>> {
>> - printf("%llu/%llu %lld %lld\n", objectid >> 48,
>> + printf("%llu/%llu %llu %llu\n", objectid >> 48,
>> objectid & ((1ll << 48) - 1),
>> btrfs_stack_qgroup_info_referenced(info),
>> btrfs_stack_qgroup_info_exclusive(info));
>>
>
> I don't like that change. Seeing negative numbers is what you should expect in
> the current situation.
>
> Once anyone come across negative numbers with a volume holding more data than
> what can be tracked with 63 bit, I may come to agree to your change. For now, it
> will confuse more than help.
Maybe, you are right.
But the type for referenced/exclusive is u64. Considering the following case:
overflow happens, referenced/exclusive changes into a big positive integer, so next time,
when we doing accounting, it may return edquot. So i think the check in the kernel is necessary.
Or am i missing something ?
Thanks,
Wang
>
> -Jan
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html