On 11.03.2013 15:35, Wang Shilong wrote: > >> On 11.03.2013 15:15, Wang Shilong wrote: >>> >>> <snip> >>> >>>>> The worst thing is that i don't think users can master this magic >>>>> concept very well. >>>> >>>> Normally users don't need very sophisticated scenarios. In fact, they >>>> don't even need higher level quota groups, the basic tracking is >>>> enough. In this case, everything just works as expected for the user. >>>> If you start creating and assigning qgroups manually, prepare to handle >>>> the complexity. >>>> >>> Considering this case: >>> >>> a subvolume related to a user, we limit the space by limiting every >>> subvolume >>> qgroup, but we also want to limit the total space all the users can use. >>> So we create >>> a parent qgroup(1/1 for example) and assign all subvolume group to this >>> parent group. >>> >>> The above case is regularly used i think, What's more, many snapshots may >>> be done. >>> So i think what i am concerning is not a corner case.. >> >> So you just missed to assign the new subvolume to 1/1 by using -i on >> snapshot creation. >> > > When snapshot happens, the exclusive of 1/1 will go wrong even with this > simple case..
Your example does not describe your use case. If you want to account the snapshot to the user, you also have to assign the snapshot to 1/1. If you do so, the exclusive will be correct. -Arne > > However, thanks very much for your patience and kindly reply ^_^ > > Thanks, > Wang > >> -Arne >> >>> >>> Thanks, >>> Wang >>>> >>>>> >>>>>> >>>>>>> If so, i think it really confusing and too complex for users to do >>>>>>> such work, is't it?... >>>>>> >>>>>> It is complex. That is why I always point anyone asking to do some work >>>>>> on btrfs or qgroups to writing an enhanced interface to simplify this >>>>>> task for the user. I don't think the kernel should handle this. >>>>>> And that's why I took the effort to write a pdf to explain the >>>>>> concepts :) >>>>> >>>>> I don't have any good ideas about this yet.. >>>>> >>>>>> But the current interface is not only complex, it also is very powerful. >>>>>> You can solve problems with it that no other quota system I know of can >>>>>> solve. >>>>>> >>>>>>> >>>>>>> BTW, i have a question about the function btrfs_qgroup_inherit(), >>>>>>> when copying exclusive value from src_qgroup to dst_qgroup: >>>>>>> >>>>>>> dst_qgroup->exclusive = src_qgroup->exclusive + level_size >>>>>>> >>>>>>> while copying referenced value from src_qgroup to dot_qgroup: >>>>>>> >>>>>>> dst_qgroup->referenced = src_qgroup->referenced -level_size >>>>>>> >>>>>>> I can't really figure out...~_~ >>>>>> >>>>>> level_size is just a small correction for the space the tree root >>>>>> occupies. The tree root is never shared between sub volumes. >>>>> >>>>> O.K. I got it.. >>>>> >>>>> Thanks, >>>>> Wang >>>>> >>>>>> >>>>>> -Arne >>>>>> >>>>>>> >>>>>>> Thanks, >>>>>>> Wang >>>>>> >>>>> >>>> >>> >> > -- 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