kobject: remove struct kobj_type from struct kset

We don't need a "default" ktype for a kset.  We should set this
explicitly every time for each kset.  This change is needed so that we
can make ksets dynamic, and cleans up one of the odd, undocumented
assumption that the kset/kobject/ktype model has.

This patch is based on a lot of help from Kay Sievers.

Nasty bug in the block code was found by Dave Young
<hidave.darkstar@gmail.com>

Cc: Kay Sievers <kay.sievers@vrfy.org>
Cc: Dave Young <hidave.darkstar@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
此提交包含在:
Greg Kroah-Hartman
2007-10-16 10:11:44 -06:00
父節點 c11c4154e7
當前提交 3514faca19
共有 36 個檔案被更改,包括 84 行新增87 行删除

查看文件

@@ -734,7 +734,7 @@ static int ecryptfs_init_kmem_caches(void)
return 0;
}
static decl_subsys(ecryptfs, NULL, NULL);
static decl_subsys(ecryptfs, NULL);
static ssize_t version_show(struct kset *kset, char *buff)
{
@@ -798,6 +798,7 @@ static int do_sysfs_registration(void)
{
int rc;
ecryptfs_subsys.kobj.kset = &fs_subsys;
rc = subsystem_register(&ecryptfs_subsys);
if (rc) {
printk(KERN_ERR
@@ -845,7 +846,6 @@ static int __init ecryptfs_init(void)
printk(KERN_ERR "Failed to register filesystem\n");
goto out_free_kmem_caches;
}
kobj_set_kset_s(&ecryptfs_subsys, fs_subsys);
rc = do_sysfs_registration();
if (rc) {
printk(KERN_ERR "sysfs registration failed\n");