* [Cluster-devel] GFS2: Send useful information with uevent messages
@ 2008-11-27 10:45 Steven Whitehouse
2008-12-01 15:25 ` David Teigland
0 siblings, 1 reply; 3+ messages in thread
From: Steven Whitehouse @ 2008-11-27 10:45 UTC (permalink / raw)
To: cluster-devel.redhat.com
From 04b985e291c464092516d0d1a4387b866389a85d Mon Sep 17 00:00:00 2001
From: Steven Whitehouse <swhiteho@redhat.com>
Date: Thu, 27 Nov 2008 09:42:51 +0000
Subject: [PATCH] GFS2: Send useful information with uevent messages
In order to distinguish between two differing uevent messages
and to avoid using the (racy) method of reading status from
sysfs in future, this adds some status information to our
uevent messages.
Btw, before anybody says "sysfs isn't racy", I'm aware of that,
but the way that GFS2 was using it (send an ambiugous uevent and
then expect the receiver to read sysfs to find out the status
of the reported operation) was.
The additional benefit of using the new interface is that it
should be possible for a node to recover multiple journals
at the same time, since there is no longer any confusion as
to which journal the status belongs to.
At some future stage, when all the userland programs have been
converted, I intend to remove the old interface.
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
diff --git a/fs/gfs2/locking/dlm/mount.c b/fs/gfs2/locking/dlm/mount.c
index 0c4cbe6..1aa7eb6 100644
--- a/fs/gfs2/locking/dlm/mount.c
+++ b/fs/gfs2/locking/dlm/mount.c
@@ -194,17 +194,25 @@ out:
static void gdlm_recovery_done(void *lockspace, unsigned int jid,
unsigned int message)
{
+ char env_jid[20];
+ char env_status[20];
+ char *envp[] = { env_jid, env_status, NULL };
struct gdlm_ls *ls = lockspace;
ls->recover_jid_done = jid;
ls->recover_jid_status = message;
- kobject_uevent(&ls->kobj, KOBJ_CHANGE);
+ sprintf(env_jid, "JID=%d", jid);
+ sprintf(env_status, "RECOVERY=%s",
+ message == LM_RD_SUCCESS ? "Done" : "Failed");
+ kobject_uevent_env(&ls->kobj, KOBJ_CHANGE, envp);
}
static void gdlm_others_may_mount(void *lockspace)
{
+ char *message = "FIRSTMOUNT=Done";
+ char *envp[] = { message, NULL };
struct gdlm_ls *ls = lockspace;
ls->first_done = 1;
- kobject_uevent(&ls->kobj, KOBJ_CHANGE);
+ kobject_uevent_env(&ls->kobj, KOBJ_CHANGE, envp);
}
/* Userspace gets the offline uevent, blocks new gfs locks on
--
1.5.5.1
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [Cluster-devel] GFS2: Send useful information with uevent messages
2008-11-27 10:45 [Cluster-devel] GFS2: Send useful information with uevent messages Steven Whitehouse
@ 2008-12-01 15:25 ` David Teigland
2008-12-01 15:37 ` Steven Whitehouse
0 siblings, 1 reply; 3+ messages in thread
From: David Teigland @ 2008-12-01 15:25 UTC (permalink / raw)
To: cluster-devel.redhat.com
On Thu, Nov 27, 2008 at 10:45:21AM +0000, Steven Whitehouse wrote:
> >From 04b985e291c464092516d0d1a4387b866389a85d Mon Sep 17 00:00:00 2001
> From: Steven Whitehouse <swhiteho@redhat.com>
> Date: Thu, 27 Nov 2008 09:42:51 +0000
> Subject: [PATCH] GFS2: Send useful information with uevent messages
>
> In order to distinguish between two differing uevent messages
> and to avoid using the (racy) method of reading status from
> sysfs in future, this adds some status information to our
> uevent messages.
>
> Btw, before anybody says "sysfs isn't racy", I'm aware of that,
> but the way that GFS2 was using it (send an ambiugous uevent and
> then expect the receiver to read sysfs to find out the status
> of the reported operation) was.
Not as long as gfs_controld tells gfs-kernel to recover journals one at a
time on a node, which is what it does to avoid this problem.
^ permalink raw reply [flat|nested] 3+ messages in thread
* [Cluster-devel] GFS2: Send useful information with uevent messages
2008-12-01 15:25 ` David Teigland
@ 2008-12-01 15:37 ` Steven Whitehouse
0 siblings, 0 replies; 3+ messages in thread
From: Steven Whitehouse @ 2008-12-01 15:37 UTC (permalink / raw)
To: cluster-devel.redhat.com
Hi,
On Mon, 2008-12-01 at 09:25 -0600, David Teigland wrote:
> On Thu, Nov 27, 2008 at 10:45:21AM +0000, Steven Whitehouse wrote:
> > >From 04b985e291c464092516d0d1a4387b866389a85d Mon Sep 17 00:00:00 2001
> > From: Steven Whitehouse <swhiteho@redhat.com>
> > Date: Thu, 27 Nov 2008 09:42:51 +0000
> > Subject: [PATCH] GFS2: Send useful information with uevent messages
> >
> > In order to distinguish between two differing uevent messages
> > and to avoid using the (racy) method of reading status from
> > sysfs in future, this adds some status information to our
> > uevent messages.
> >
> > Btw, before anybody says "sysfs isn't racy", I'm aware of that,
> > but the way that GFS2 was using it (send an ambiugous uevent and
> > then expect the receiver to read sysfs to find out the status
> > of the reported operation) was.
>
> Not as long as gfs_controld tells gfs-kernel to recover journals one at a
> time on a node, which is what it does to avoid this problem.
>
Thats true, but I think that we ought to remove that restriction. It
also doesn't alter the fact that its impossible to tell the difference
between the two CHANGE events except by knowing the current state of the
cluster, and I don't think thats a good thing really,
Steve.
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2008-12-01 15:37 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-11-27 10:45 [Cluster-devel] GFS2: Send useful information with uevent messages Steven Whitehouse
2008-12-01 15:25 ` David Teigland
2008-12-01 15:37 ` Steven Whitehouse
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).