Hello,

2013/2/22 Arne Jansen <sensi...@gmx.net>:
> On 02/22/13 13:09, Wang Shilong wrote:
>> From: Wang Shilong <wangsl-f...@cn.fujitsu.com>
>>
>> This patch tries to stop users to create/destroy qgroup level 0,
>> users can only create/destroy qgroup level more than 0.
>>
>> See the fact:
>>       a subvolume/snapshot qgroup was created automatically
>> when creating subvolume/snapshot, so creating a qgroup level 0 can't
>> be a subvolume/snapshot qgroup, the only way to use it is that assigning
>> subvolume/snapshot qgroup to it, the point is that we don't want to have a
>> parent qgroup whose level is 0.
>>
>>       So we want to force users to use qgroup with clear relations
>> which means a parent qgroup's level > child qgroup's level.For example:
>>
>>                           2/0
>>                          /    \
>>                         /      \
>>                        /        \
>>                       1/0       1/1
>>                     /     \        \
>>                    /       \        \
>>                   /         \        \
>>               0/256     0/257    0/258
>>
>> This pattern of quota is nature and easy for users to understand, otherwise 
>> it will
>> make the quota configuration confusing and difficult to maintain.
>
> I agree that a strict hierarchy of the levels should be enforced.
> Currently the kernel has no idea of 'level', it's just an artificial
> concept that lives in userspace. This patch would be the first place
> to add that magic shift '48' to the kernel.
> In my opinion it would be sufficient to do the enforcement in user
> space, as it is of no technical nature.
>

...i have made some patches about these work in btrfs-prog, but it has
been not merged...
I will pick up thoses patches and do the other necessary work..

Thanks,
Wang

> -Arne
>
>>
>> Signed-off-by: Wang Shilong <wangsl-f...@cn.fujitsu.com>
>> Acked-by: Miao Xie <mi...@cn.fujitsu.com>
>> Cc: Arne Jansen <sensi...@gmx.net>
>> ---
>>  fs/btrfs/ioctl.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
>> index a31cd93..3590c21 100644
>> --- a/fs/btrfs/ioctl.c
>> +++ b/fs/btrfs/ioctl.c
>> @@ -3755,7 +3755,7 @@ static long btrfs_ioctl_qgroup_create(struct file 
>> *file, void __user *arg)
>>               goto drop_write;
>>       }
>>
>> -     if (!sa->qgroupid) {
>> +     if (!(sa->qgroupid >> 48)) {
>>               ret = -EINVAL;
>>               goto out;
>>       }
>>
>
--
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