class_simple_device_add(ch_sysfs_class, MKDEV(SCSI_CHANGER_MAJOR,ch->minor), dev, "s%s", ch->name); 
class_device_create(ch_sysfs_class, MKDEV(SCSI_CHANGER_MAJOR,ch->minor), dev, "s%s", ch->name); 
static int ch_probe(struct device *dev){	struct scsi_device *sd = to_scsi_device(dev);	scsi_changer *ch;		if (sd->type != TYPE_MEDIUM_CHANGER)		return -ENODEV;    	ch = kmalloc(sizeof(*ch), GFP_KERNEL);	if (NULL == ch)		return -ENOMEM;	memset(ch,0,sizeof(*ch));	ch->minor = ch_devcount;	sprintf(ch->name,"ch%d",ch->minor);	init_MUTEX(&ch->lock);	ch->device = sd;	ch_readconfig(ch);	if (init)		ch_init_elem(ch);	devfs_mk_cdev(MKDEV(SCSI_CHANGER_MAJOR,ch->minor),		      S_IFCHR | S_IRUGO | S_IWUGO, ch->name);	class_simple_device_add(ch_sysfs_class,				MKDEV(SCSI_CHANGER_MAJOR,ch->minor),				dev, "s%s", ch->name);	printk(KERN_INFO "Attached scsi changer %s "	       "at scsi%d, channel %d, id %d, lun %d\n", 	       ch->name, sd->host->host_no, sd->channel, sd->id, sd->lun);		spin_lock(&ch_devlist_lock);	list_add_tail(&ch->list,&ch_devlist);	ch_devcount++;	spin_unlock(&ch_devlist_lock);	return 0;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/21feb5ccd5d054b8a17fe86b1b5df1e16809df64/ch.c/clean/drivers/scsi/ch.c