Fedora kernel-2.6.17-1.2142_FC4 patched with stable patch-2.6.17.4-vs2.0.2-rc26.diff
[linux-2.6.git] / fs / sysfs / group.c
index 61b2462..122145b 100644 (file)
@@ -11,6 +11,7 @@
 #include <linux/kobject.h>
 #include <linux/module.h>
 #include <linux/dcache.h>
+#include <linux/namei.h>
 #include <linux/err.h>
 #include "sysfs.h"
 
@@ -31,7 +32,7 @@ static int create_files(struct dentry * dir,
        int error = 0;
 
        for (attr = grp->attrs; *attr && !error; attr++) {
-               error = sysfs_add_file(dir,*attr);
+               error = sysfs_add_file(dir, *attr, SYSFS_KOBJ_ATTR);
        }
        if (error)
                remove_files(dir,grp);
@@ -45,6 +46,8 @@ int sysfs_create_group(struct kobject * kobj,
        struct dentry * dir;
        int error;
 
+       BUG_ON(!kobj || !kobj->dentry);
+
        if (grp->name) {
                error = sysfs_create_subdir(kobj,grp->name,&dir);
                if (error)
@@ -66,7 +69,8 @@ void sysfs_remove_group(struct kobject * kobj,
        struct dentry * dir;
 
        if (grp->name)
-               dir = sysfs_get_dentry(kobj->dentry,grp->name);
+               dir = lookup_one_len(grp->name, kobj->dentry,
+                               strlen(grp->name));
        else
                dir = dget(kobj->dentry);
 
@@ -78,5 +82,5 @@ void sysfs_remove_group(struct kobject * kobj,
 }
 
 
-EXPORT_SYMBOL(sysfs_create_group);
-EXPORT_SYMBOL(sysfs_remove_group);
+EXPORT_SYMBOL_GPL(sysfs_create_group);
+EXPORT_SYMBOL_GPL(sysfs_remove_group);