2008-06-10 17:57:49

by Arthur Jones

[permalink] [raw]
Subject: static kset (and kobject)...

Hi Zack, FYI: I just learned that static ksets and kobjects
are bad (see Documentation/kobject.txt for details). The
following commit:

commit 52fd3d6fea441835fe3a35b7280e5e128bdeca9b
Author: Zach Brown <[email protected]>
Date: Thu Dec 15 14:31:23 2005 -0800

[PATCH] OCFS2: The Second Oracle Cluster Filesystem

Very simple printk wrapper which adds the ability to enable various
sets of debug messages at run-time.

Signed-off-by: Mark Fasheh <[email protected]>
Signed-off-by: Kurt Hackel <[email protected]>

Introduces:

+static struct kset mlog_kset = {
+ .kobj = {.name = "logmask", .ktype = &mlog_ktype},
+};
+
+int mlog_sys_init(struct subsystem *o2cb_subsys)
+{
+ int i = 0;
+
+ while (mlog_attrs[i].attr.mode) {
+ mlog_attr_ptrs[i] = &mlog_attrs[i].attr;
+ i++;
+ }
+ mlog_attr_ptrs[i] = NULL;
+
+ mlog_kset.subsys = o2cb_subsys;
+ return kset_register(&mlog_kset);
+}
+
+void mlog_sys_shutdown(void)
+{
+ kset_unregister(&mlog_kset);
+}

which I've learned the hard way probably won't
work as expected. I'm surprised that you don't
see some sort of issue w/ this on module reload...

Arthur


2008-06-10 18:46:48

by Zach Brown

[permalink] [raw]
Subject: Re: static kset (and kobject)...

Arthur Jones wrote:
> Hi Zack, FYI: I just learned that static ksets and kobjects
> are bad (see Documentation/kobject.txt for details).

Hi! Mark is the OCFS2 maintainer and I'll let him respond to your
observation. (Note his @suse address that I've used in this reply.)

- z