This is the mail archive of the
cluster-cvs@sourceware.org
mailing list for the cluster.
cluster: STABLE2 - GFS: Send sensible sysfs stuff
- From: Steven Whitehouse <swhiteho at fedoraproject dot org>
- To: cluster-cvs-relay at redhat dot com
- Date: Thu, 27 Nov 2008 11:16:09 +0000 (UTC)
- Subject: 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;