diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2007-10-16 12:11:44 -0400 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2008-01-24 23:40:10 -0500 |
commit | 3514faca19a6fdc209734431c509631ea92b094e (patch) | |
tree | f6d102e6dec276f8e8d1044b47c74a02b901554f /fs/gfs2 | |
parent | c11c4154e7ff4cebfadad849b1e22689d759c3f4 (diff) |
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>
Diffstat (limited to 'fs/gfs2')
-rw-r--r-- | fs/gfs2/locking/dlm/sysfs.c | 6 | ||||
-rw-r--r-- | fs/gfs2/sys.c | 6 |
2 files changed, 4 insertions, 8 deletions
diff --git a/fs/gfs2/locking/dlm/sysfs.c b/fs/gfs2/locking/dlm/sysfs.c index ae9e6a25fe2b..93e66b22757f 100644 --- a/fs/gfs2/locking/dlm/sysfs.c +++ b/fs/gfs2/locking/dlm/sysfs.c | |||
@@ -189,9 +189,7 @@ static struct kobj_type gdlm_ktype = { | |||
189 | .sysfs_ops = &gdlm_attr_ops, | 189 | .sysfs_ops = &gdlm_attr_ops, |
190 | }; | 190 | }; |
191 | 191 | ||
192 | static struct kset gdlm_kset = { | 192 | static struct kset gdlm_kset; |
193 | .ktype = &gdlm_ktype, | ||
194 | }; | ||
195 | 193 | ||
196 | int gdlm_kobject_setup(struct gdlm_ls *ls, struct kobject *fskobj) | 194 | int gdlm_kobject_setup(struct gdlm_ls *ls, struct kobject *fskobj) |
197 | { | 195 | { |
@@ -224,7 +222,7 @@ int gdlm_sysfs_init(void) | |||
224 | int error; | 222 | int error; |
225 | 223 | ||
226 | kobject_set_name(&gdlm_kset.kobj, "lock_dlm"); | 224 | kobject_set_name(&gdlm_kset.kobj, "lock_dlm"); |
227 | kobj_set_kset_s(&gdlm_kset, kernel_subsys); | 225 | gdlm_kset.kobj.kset = &kernel_subsys; |
228 | error = kset_register(&gdlm_kset); | 226 | error = kset_register(&gdlm_kset); |
229 | if (error) | 227 | if (error) |
230 | printk("lock_dlm: cannot register kset %d\n", error); | 228 | printk("lock_dlm: cannot register kset %d\n", error); |
diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c index 06e0b7768d97..d7fa54443f0c 100644 --- a/fs/gfs2/sys.c +++ b/fs/gfs2/sys.c | |||
@@ -221,9 +221,7 @@ static struct kobj_type gfs2_ktype = { | |||
221 | .sysfs_ops = &gfs2_attr_ops, | 221 | .sysfs_ops = &gfs2_attr_ops, |
222 | }; | 222 | }; |
223 | 223 | ||
224 | static struct kset gfs2_kset = { | 224 | static struct kset gfs2_kset; |
225 | .ktype = &gfs2_ktype, | ||
226 | }; | ||
227 | 225 | ||
228 | /* | 226 | /* |
229 | * display struct lm_lockstruct fields | 227 | * display struct lm_lockstruct fields |
@@ -551,7 +549,7 @@ int gfs2_sys_init(void) | |||
551 | gfs2_sys_margs = NULL; | 549 | gfs2_sys_margs = NULL; |
552 | spin_lock_init(&gfs2_sys_margs_lock); | 550 | spin_lock_init(&gfs2_sys_margs_lock); |
553 | kobject_set_name(&gfs2_kset.kobj, "gfs2"); | 551 | kobject_set_name(&gfs2_kset.kobj, "gfs2"); |
554 | kobj_set_kset_s(&gfs2_kset, fs_subsys); | 552 | gfs2_kset.kobj.kset = &fs_subsys; |
555 | return kset_register(&gfs2_kset); | 553 | return kset_register(&gfs2_kset); |
556 | } | 554 | } |
557 | 555 | ||