On Fri, Jul 30, 2010 at 16:22, Milan Broz <mbroz@xxxxxxxxxx> wrote: > On 07/30/2010 06:36 AM, Kay Sievers wrote: > >> Alternatively, these attributes could be created and removed/created >> with the ioctl, and before the 'change' event, only if there is an >> active backing file, but I would expect the attribute group at the >> device to work just fine. > I have no idea how you can add attribute group before add_disk() which > initializes kobj (it ends with BUG_ON in internal_create_group > - because !kobj->sd). Perhaps I missed something? Attribute groups handle the creation of a kobject (subdir) for you, you only supply a name to the group. Without a name, they will put all the attributes in the root of the device. The 'struct device' has a member **groups, and that can have a list of attribute groups assigned. You assign them before you register the device, and the core will take care of everything. > Anyway, second approach works - now is loop attributes available only > when loop is configured and before CHANGE uevent is sent. > > Ok with that? Sounds good, nothing to complain from a sysfs timing perspective. Now you have do decide if you prefer that over the attribute group approach. :) The code with attribute groups, instead of custom kobject stuff, might be a bit easier to understand. Thanks, Kay -- To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html