On Monday, November 26, 2012 5:30 PM Sebastian Andrzej Siewior wrote: > On 11/26/2012 09:35 AM, Andrzej Pietrasiewicz wrote: > > In some parts of the kernel (e.g. planned configfs integration into > > usb > > gadget) there is a need to programmatically create config groups > > (directories) but it would be preferable to disallow creating them by > > the user. This is more or less what default_groups used to be for. > > But e.g. in the mass storage gadget, after storing the number of luns > > (logical units) into some configfs attribute, the corresponding lun# > > directories should be created, their number is not known up front so > > default_groups are no good for this. > > <snip> > > |mkdir -p $FABRIC/naa.6001405c3214b06a/tpgt_1 > |mkdir $FABRIC/naa.6001405c3214b06a/tpgt_1/lun/lun_0 > |mkdir $FABRIC/naa.6001405c3214b06a/tpgt_1/lun/lun_1 > > So you setup two luns without this patch. Would that work for you? > I think we _still_ need a way to programmatically create/remove configfs directories. Without it, this: "After name is written it will request the module and special configuration related files pop up." (http://www.spinics.net/lists/linux-usb/msg75118.html) is only possible for a static, predefined number of configuration subdirectories. Can you guarantee there will be only such a need? Are you sure lun# directories will not be created programmatically? https://lkml.org/lkml/2012/11/26/584 And there are problems to be addressed right now, not possibly in the future: take the intrefaceXX (read-only) directory, which contains information about altsetting, interface class, interface number, endpoints etc. It can be created only after the gadget has actually been bound. But before the gadget is bound it is being configured and the configfs directories must already be there, so any default_groups are already created. So the interfaceXX directory cannot be implemented as a default group, but must be created programmatically. Also, there is an idea to unbind the gadget with just doing rmdir /cfg/...../gadgetX: http://www.spinics.net/lists/linux-usb/msg74893.html This implies doing a recursive rmdir first on its subdirectories - a programmatic rmdir. Taken all this into account, I would like to have a way to programmatically create and remove configfs directories. Right now creating them is like scratching the left ear with the hand under the right knee. And it leads to comments like: "Looking at this: full_name_hash(), d_alloc(), d_add(), d_drop(), dput(). Do you write a filesystem?" http://www.spinics.net/lists/linux-usb/msg74841.html Andrzej -- To unsubscribe from this list: send the line "unsubscribe linux-usb" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html