Messages in this thread |  | | Date | Sun, 12 May 2024 05:35:09 +0100 | | From | Al Viro <> | | Subject | Re: [RFC] configfs_{un,}register_group() semantics |
| |
[now with hopefully correct address of Daniel Baluta]
On Sun, May 12, 2024 at 05:30:12AM +0100, Al Viro wrote: > Folks, could you confirm if the following is correct? > > 1. configfs_unregister_group() callers are supposed to prevent > having it called when some items/groups had been created under it. > The original one (in iio) *does* prevent that (the call chains come > through the module_exit() of modules pinned by ->make_group() for > the added subdirectory), but I don't see that documented anywhere and > AFAICS at least in one case (drivers/pci/endpoint/pci-ep-cfs.c) that is > not guaranteed. The same goes for symlinks created in or to those. > > 2. rmdir on directory added by configfs_register_group() is supposed to > fail (is it even supposed to be used inside the stuff created by mkdir? > Original use was inside a subsystem, AFAICS). > > 3. rmdir that would've taken out the parent group is supposed to take > the added one out (again, are they even supposed to be used inside the > stuff created by mkdir?) > > 4. one is *NOT* supposed to use have ->make_group() schedule creation of > subdirectories via configfs_register_group(); configfs_add_default_group() > ought to be used instead. > > drivers/pci/endpoint/pci-ep-cfs.c:pci_epf_make() has this: > INIT_DELAYED_WORK(&epf_group->cfs_work, pci_epf_cfs_work); > queue_delayed_work(system_wq, &epf_group->cfs_work, > msecs_to_jiffies(1)); > > return &epf_group->group; > > with pci_epf_cfs_work() allocating several config_group and calling > configfs_register_group() to link those in. I really doubt that this > kind of "let's hope that configfs_mkdir() will get through directory > creation in less than 1ms after ->make_group() returns" is the way it > is supposed to be done; at a guess, configfs_add_default_group() > should've been used (synchronously), but I might be missing something > subtle here. > > Comments? >
|  |