aboutsummaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorDmitry Torokhov <dtor_core@ameritech.net>2004-01-19 00:21:50 -0800
committerDmitry Torokhov <dtor_core@ameritech.net>2004-01-19 00:21:50 -0800
commitb989f180460c5b491b81c9d8227fc31c00c3bbc2 (patch)
tree390b63227764e444c3e84c56f14e4e4f6e7025c7 /lib
parent0010bc50c1863814bf9b9c37dabde0b48207f665 (diff)
downloadhistory-b989f180460c5b491b81c9d8227fc31c00c3bbc2.tar.gz
[PATCH] kobject: make kobject hotplug function public
make kobject hotplug mechanism public so that others may call it.
Diffstat (limited to 'lib')
-rw-r--r--lib/kobject.c49
1 files changed, 21 insertions, 28 deletions
diff --git a/lib/kobject.c b/lib/kobject.c
index 51787be1555262..8ab50700d2c2b9 100644
--- a/lib/kobject.c
+++ b/lib/kobject.c
@@ -198,9 +198,24 @@ exit:
kfree(envp);
return;
}
+
+void kobject_hotplug(const char *action, struct kobject *kobj)
+{
+ struct kobject * top_kobj = kobj;
+
+ /* If this kobj does not belong to a kset,
+ try to find a parent that does. */
+ if (!top_kobj->kset && top_kobj->parent) {
+ do {
+ top_kobj = top_kobj->parent;
+ } while (!top_kobj->kset && top_kobj->parent);
+ }
+
+ if (top_kobj->kset && top_kobj->kset->hotplug_ops)
+ kset_hotplug(action, top_kobj->kset, kobj);
+}
#else
-static void kset_hotplug(const char *action, struct kset *kset,
- struct kobject *kobj)
+void kobject_hotplug(const char *action, struct kobject *kobj)
{
return;
}
@@ -248,7 +263,6 @@ int kobject_add(struct kobject * kobj)
{
int error = 0;
struct kobject * parent;
- struct kobject * top_kobj;
if (!(kobj = kobject_get(kobj)))
return -ENOENT;
@@ -277,18 +291,9 @@ int kobject_add(struct kobject * kobj)
if (parent)
kobject_put(parent);
} else {
- /* If this kobj does not belong to a kset,
- try to find a parent that does. */
- top_kobj = kobj;
- if (!top_kobj->kset && top_kobj->parent) {
- do {
- top_kobj = top_kobj->parent;
- } while (!top_kobj->kset && top_kobj->parent);
- }
-
- if (top_kobj->kset && top_kobj->kset->hotplug_ops)
- kset_hotplug("add", top_kobj->kset, kobj);
+ kobject_hotplug("add", kobj);
}
+
return error;
}
@@ -396,20 +401,7 @@ void kobject_rename(struct kobject * kobj, char *new_name)
void kobject_del(struct kobject * kobj)
{
- struct kobject * top_kobj;
-
- /* If this kobj does not belong to a kset,
- try to find a parent that does. */
- top_kobj = kobj;
- if (!top_kobj->kset && top_kobj->parent) {
- do {
- top_kobj = top_kobj->parent;
- } while (!top_kobj->kset && top_kobj->parent);
- }
-
- if (top_kobj->kset && top_kobj->kset->hotplug_ops)
- kset_hotplug("remove", top_kobj->kset, kobj);
-
+ kobject_hotplug("remove", kobj);
sysfs_remove_dir(kobj);
unlink(kobj);
}
@@ -638,6 +630,7 @@ EXPORT_SYMBOL(kobject_register);
EXPORT_SYMBOL(kobject_unregister);
EXPORT_SYMBOL(kobject_get);
EXPORT_SYMBOL(kobject_put);
+EXPORT_SYMBOL(kobject_hotplug);
EXPORT_SYMBOL(kset_register);
EXPORT_SYMBOL(kset_unregister);