On Mon, 2009-10-26 at 18:58 +0200, Boaz Harrosh wrote: > @@ -335,18 +370,19 @@ static int osd_probe(struct device *dev) > OSD_ERR("cdev_add failed\n"); > goto err_put_disk; > } > - kobject_get(&oud->cdev.kobj); /* 2nd ref see osd_remove() */ > > /* class_member */ > - oud->class_member = device_create(osd_sysfs_class, dev, > - MKDEV(SCSI_OSD_MAJOR, oud->minor), "%s", disk->disk_name); > + oud->class_member = device_create(&osd_uld_class, dev, > + MKDEV(SCSI_OSD_MAJOR, oud->minor), oud, disk->disk_name); > if (IS_ERR(oud->class_member)) { > OSD_ERR("class_device_create failed\n"); > error = PTR_ERR(oud->class_member); > goto err_put_cdev; > } > + oud->save_release = oud->class_member->release; > + oud->class_member->release = __remove; What exactly is the reason for this iffy manipulation? Can't this be done properly by adding a dev_release member to osd_uld_class without this unnecessary and improper function chaining? James -- 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