On Tue, Apr 7, 2009 at 23:19, Jens Axboe <jens.axboe@xxxxxxxxxx> wrote: > On Tue, Apr 07 2009, Mike Miller (OS Dev) wrote: > The patch looks fine to me, but my sysfs foo is very weak though. CC'ing > Kay, perhaps he can help take a quick look at this. >> + * Initialize sysfs for each logical drive. This sets up and registers >> + * the 'c#d#' directory for each individual logical drive under >> + * /sys/bus/pci/devices/<dev/ccis#/. We also create a link from >> + * /sys/block/cciss!c#d# to this entry. >> + */ >> +static int cciss_create_ld_sysfs_entry(struct ctlr_info *h, >> + drive_info_struct *drv, >> + int drv_index) >> +{ >> + device_initialize(&drv->dev); >> + drv->dev.type = &cciss_dev_type; >> + dev_set_name(&drv->dev, "c%dd%d", h->ctlr, drv_index); >> + drv->dev.parent = &h->dev; >> + return device_add(&drv->dev); >> +} If I read that correctly, you are creating a hierarchy of devices where the devices do not belong to any subsystem? This is what we need to avoid in almost all cases, we need a "subsystem" link in sysfs. I wold expect the cciss devices not to be a magic, silently created, subdirectory of a pci device, but to have their own "cciss" bus in sysfs, so the created devices get proper events at creation time. All the cciss devices would show up in its own directory /sys/bus/cciss/devices/*. I think, you should name all "cciss bus devices" uniquely, and assign them to a "cciss bus_type". We really do not want unclassified devices in the chain of parent devices of a block device. Or do I missing something here? Kay -- To unsubscribe from this list: send the line "unsubscribe linux-scsi" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html