lkml.org 
[lkml]   [2006]   [Mar]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
Date
From
Subject[PATCH 1/7] dm/md dependency tree in sysfs: kobject_add_dir
This patch is part of dm/md dependency tree in sysfs.

This adds kobject_add_dir() function which creates a subdirectory
for a given kobject.

Thanks,
--
Jun'ichi Nomura, NEC Solutions (America), Inc.
Adding kobject_add_dir() function which creates a subdirectory
for a given kobject.

Signed-off-by: Jun'ichi Nomura <j-nomura@ce.jp.nec.com>

include/linux/kobject.h | 2 ++
lib/kobject.c | 37 +++++++++++++++++++++++++++++++++++++
2 files changed, 39 insertions(+)

--- linux-2.6.16-rc6.orig/include/linux/kobject.h 2006-03-11 17:12:55.000000000 -0500
+++ linux-2.6.16-rc6/include/linux/kobject.h 2006-03-13 11:23:55.000000000 -0500
@@ -80,6 +80,8 @@ extern void kobject_unregister(struct ko
extern struct kobject * kobject_get(struct kobject *);
extern void kobject_put(struct kobject *);

+extern struct kobject * kobject_add_dir(struct kobject *, const char *);
+
extern char * kobject_get_path(struct kobject *, gfp_t);

struct kobj_type {
--- linux-2.6.16-rc6.orig/lib/kobject.c 2006-03-11 17:12:55.000000000 -0500
+++ linux-2.6.16-rc6/lib/kobject.c 2006-03-13 11:23:55.000000000 -0500
@@ -379,6 +379,43 @@ void kobject_put(struct kobject * kobj)
}


+static void dir_release(struct kobject *kobj)
+{
+ kfree(kobj);
+}
+
+static struct kobj_type dir_ktype = {
+ .release = dir_release,
+ .sysfs_ops = NULL,
+ .default_attrs = NULL,
+};
+
+/**
+ * kobject_add_dir - add sub directory of object.
+ * @parent: object in which a directory is created.
+ * @name: directory name.
+ *
+ * Add a plain directory object as child of given object.
+ */
+struct kobject *kobject_add_dir(struct kobject *parent, const char *name)
+{
+ struct kobject *k;
+
+ if (!parent)
+ return NULL;
+
+ k = kzalloc(sizeof(*k), GFP_KERNEL);
+ if (!k)
+ return NULL;
+
+ k->parent = parent;
+ k->ktype = &dir_ktype;
+ kobject_set_name(k, name);
+ kobject_register(k);
+
+ return k;
+}
+
/**
* kset_init - initialize a kset for use
* @k: kset
\
 
 \ /
  Last update: 2006-03-13 23:15    [W:0.076 / U:0.216 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site