This is the mail archive of the cluster-cvs@sourceware.org mailing list for the cluster.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

cluster: STABLE2 - GFS: Send sensible sysfs stuff


Gitweb:        http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=edad25a07ae2016e5e4e97b786f2568fde7a8a30
Commit:        edad25a07ae2016e5e4e97b786f2568fde7a8a30
Parent:        8650d4a9642ab15210df0fa204e3708a4fc145ab
Author:        Steven Whitehouse <swhiteho@redhat.com>
AuthorDate:    Wed Nov 26 10:51:07 2008 +0000
Committer:     Steven Whitehouse <swhiteho@redhat.com>
CommitterDate: Thu Nov 27 10:16:43 2008 +0000

GFS: Send sensible sysfs stuff

The fix to make gfs1 send the info that we need to process
the uevents which it generates.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
---
 gfs-kernel/src/gfs/lock_dlm_sysfs.c |   15 ++++++++++++++-
 gfs-kernel/src/gfs/sys.c            |   15 ++++++++++++++-
 2 files changed, 28 insertions(+), 2 deletions(-)

diff --git a/gfs-kernel/src/gfs/lock_dlm_sysfs.c b/gfs-kernel/src/gfs/lock_dlm_sysfs.c
index 98626fa..01445a5 100644
--- a/gfs-kernel/src/gfs/lock_dlm_sysfs.c
+++ b/gfs-kernel/src/gfs/lock_dlm_sysfs.c
@@ -199,9 +199,22 @@ void gdlm_kobject_release(struct gdlm_ls *ls)
 	kobject_put(&ls->kobj);
 }
 
+static int gdlm_uevent(struct kset *kset, struct kobject *kobj,
+		       struct kobj_uevent_env *env)
+{
+	struct gdlm_ls *ls = container_of(kobj, struct gdlm_ls, kobj);
+	add_uevent_var(env, "LOCKTABLE=%s:%s", ls->clustername, ls->fsname);
+	add_uevent_var(env, "LOCKPROTO=lock_dlm");
+	return 0;
+}
+
+static struct kset_uevent_ops gdlm_uevent_ops = {
+	.uevent = gdlm_uevent,
+};
+
 int gdlm_sysfs_init(void)
 {
-	gdlm_kset = kset_create_and_add("lock_dlm_gfs", NULL, kernel_kobj);
+	gdlm_kset = kset_create_and_add("lock_dlm_gfs", &gdlm_uevent_ops, kernel_kobj);
 	if (!gdlm_kset) {
 		printk(KERN_WARNING "%s: can not create kset\n", __FUNCTION__);
 		return -ENOMEM;
diff --git a/gfs-kernel/src/gfs/sys.c b/gfs-kernel/src/gfs/sys.c
index 77f542a..d0d4b07 100644
--- a/gfs-kernel/src/gfs/sys.c
+++ b/gfs-kernel/src/gfs/sys.c
@@ -98,11 +98,24 @@ void gfs_sys_fs_del(struct gfs_sbd *sdp)
 	kobject_put(&sdp->sd_kobj);
 }
 
+static int gfs_uevent(struct kset *kset, struct kobject *kobj,
+		       struct kobj_uevent_env *env)
+{
+	struct gfs_sbd *sdp = container_of(kobj, struct gfs_sbd, sd_kobj);
+	add_uevent_var(env, "LOCKTABLE=%s", sdp->sd_table_name);
+	add_uevent_var(env, "LOCKPROTO=%s", sdp->sd_proto_name);
+	return 0;
+}
+
+static struct kset_uevent_ops gfs_uevent_ops = {
+	.uevent = gfs_uevent,
+};
+
 int gfs_sys_init(void)
 {
 	gfs_sys_margs = NULL;
 	spin_lock_init(&gfs_sys_margs_lock);
-	gfs_kset = kset_create_and_add("gfs", NULL, fs_kobj);
+	gfs_kset = kset_create_and_add("gfs", &gfs_uevent_ops, fs_kobj);
 	if (!gfs_kset)
 		return -ENOMEM;
 	return 0;


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]