} else { kobject_hotplug(kobj, KOBJ_ADD); 
int kobject_add(struct kobject * kobj){	int error = 0;	struct kobject * parent;	if (!(kobj = kobject_get(kobj)))		return -ENOENT;	if (!kobj->k_name)		kobj->k_name = kobj->name;	parent = kobject_get(kobj->parent);	pr_debug("kobject %s: registering. parent: %s, set: %s\n",		 kobject_name(kobj), parent ? kobject_name(parent) : "<NULL>", 		 kobj->kset ? kobj->kset->kobj.name : "<NULL>" );	if (kobj->kset) {		spin_lock(&kobj->kset->list_lock);		if (!parent)			parent = kobject_get(&kobj->kset->kobj);		list_add_tail(&kobj->entry,&kobj->kset->list);		spin_unlock(&kobj->kset->list_lock);	}	kobj->parent = parent;	error = create_dir(kobj);	if (error) {		/* unlink does the kobject_put() for us */		unlink(kobj);		if (parent)			kobject_put(parent);	} else {		kobject_hotplug(kobj, KOBJ_ADD);	}	return error;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/18c3d5271b472c096adfc856e107c79f6fd30d7d/kobject.c/buggy/lib/kobject.c