Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 7423172a authored by Jun'ichi Nomura's avatar Jun'ichi Nomura Committed by Greg Kroah-Hartman
Browse files

[PATCH] kobject_add_dir



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

Signed-off-by: default avatarJun'ichi Nomura <j-nomura@ce.jp.nec.com>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@suse.de>
parent dd308bc3
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -80,6 +80,8 @@ extern void kobject_unregister(struct kobject *);
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 {
+38 −0
Original line number Diff line number Diff line
@@ -385,6 +385,44 @@ 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;
}
EXPORT_SYMBOL_GPL(kobject_add_dir);

/**
 *	kset_init - initialize a kset for use
 *	@k:	kset