diff options
| author | Patrick Mochel <mochel@osdl.org> | 2002-12-04 06:07:19 -0600 |
|---|---|---|
| committer | Patrick Mochel <mochel@osdl.org> | 2002-12-04 06:07:19 -0600 |
| commit | 8bed75c80972fbfb09c93dbbfcc79d8d0377263c (patch) | |
| tree | 658a16e9a42bd6b7fe79768a7592717a19928f8a /lib/kobject.c | |
| parent | 2becf2fd04bdad4a7d0acb94fef355a0b3febfdb (diff) | |
| parent | 6f614c99601d8d5f2b67a186806bbd21e5108fc5 (diff) | |
Merge osdl.org:/home/mochel/src/kernel/devel/linux-2.5-virgin
into osdl.org:/home/mochel/src/kernel/devel/linux-2.5-core
Diffstat (limited to 'lib/kobject.c')
| -rw-r--r-- | lib/kobject.c | 37 |
1 files changed, 35 insertions, 2 deletions
diff --git a/lib/kobject.c b/lib/kobject.c index 33e4f8c9ce58..04b1fd760d45 100644 --- a/lib/kobject.c +++ b/lib/kobject.c @@ -110,8 +110,7 @@ int kobject_register(struct kobject * kobj) if (kobj) { kobject_init(kobj); error = kobject_add(kobj); - if (error) - kobject_cleanup(kobj); + WARN_ON(error); } else error = -EINVAL; return error; @@ -229,6 +228,38 @@ void subsystem_unregister(struct subsystem * s) } +/** + * subsystem_create_file - export sysfs attribute file. + * @s: subsystem. + * @a: subsystem attribute descriptor. + */ + +int subsys_create_file(struct subsystem * s, struct subsys_attribute * a) +{ + int error = 0; + if (subsys_get(s)) { + error = sysfs_create_file(&s->kobj,&a->attr); + subsys_put(s); + } + return error; +} + + +/** + * subsystem_remove_file - remove sysfs attribute file. + * @s: subsystem. + * @a: attribute desciptor. + */ + +void subsys_remove_file(struct subsystem * s, struct subsys_attribute * a) +{ + if (subsys_get(s)) { + sysfs_remove_file(&s->kobj,&a->attr); + subsys_put(s); + } +} + + EXPORT_SYMBOL(kobject_init); EXPORT_SYMBOL(kobject_register); EXPORT_SYMBOL(kobject_unregister); @@ -238,3 +269,5 @@ EXPORT_SYMBOL(kobject_put); EXPORT_SYMBOL(subsystem_init); EXPORT_SYMBOL(subsystem_register); EXPORT_SYMBOL(subsystem_unregister); +EXPORT_SYMBOL(subsys_create_file); +EXPORT_SYMBOL(subsys_remove_file); |
