[Cluster-devel] GFS2: Pull request (fixes)

2009-08-14 Thread Steven Whitehouse
Hi,

Please consider pulling the following fix,

Steve.


The following changes since commit 64f1607ffbbc772685733ea63e6f7f4183df1b16:
  Linus Torvalds (1):
Linux 2.6.31-rc6

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/steve/gfs2-2.6-fixes.git master

Steven Whitehouse (1):
  GFS2: Fix permissions on recover file

 fs/gfs2/sys.c |   20 ++--
 1 files changed, 10 insertions(+), 10 deletions(-)

---

From d7e623da1a757fbd8c117fa29190ca8bef14dab3 Mon Sep 17 00:00:00 2001
From: Steven Whitehouse swhit...@redhat.com
Date: Tue, 11 Aug 2009 11:20:11 +0100
Subject: [PATCH] GFS2: Fix permissions on recover file

Although this file is only ever written and not read by
userspace, it seems that the utils are opening this
file O_RDWR, so we need to allow that.

Also fixes the whitespace which seemed to be broken.

Signed-off-by: Steven Whitehouse swhit...@redhat.com
Cc: David Teigland teigl...@redhat.com
---
 fs/gfs2/sys.c |   20 ++--
 1 files changed, 10 insertions(+), 10 deletions(-)

diff --git a/fs/gfs2/sys.c b/fs/gfs2/sys.c
index 23419dc..a7cbfbd 100644
--- a/fs/gfs2/sys.c
+++ b/fs/gfs2/sys.c
@@ -386,16 +386,16 @@ static ssize_t jid_show(struct gfs2_sbd *sdp, char *buf)
 #define GDLM_ATTR(_name,_mode,_show,_store) \
 static struct gfs2_attr gdlm_attr_##_name = __ATTR(_name,_mode,_show,_store)
 
-GDLM_ATTR(proto_name, 0444, proto_name_show,   NULL);
-GDLM_ATTR(block,  0644, block_show,block_store);
-GDLM_ATTR(withdraw,   0644, withdraw_show, withdraw_store);
-GDLM_ATTR(id, 0444, lkid_show, NULL);
-GDLM_ATTR(jid,   0444, jid_show,   NULL);
-GDLM_ATTR(first,  0444, lkfirst_show,  NULL);
-GDLM_ATTR(first_done, 0444, first_done_show,   NULL);
-GDLM_ATTR(recover,0200, NULL,  recover_store);
-GDLM_ATTR(recover_done,   0444, recover_done_show, NULL);
-GDLM_ATTR(recover_status, 0444, recover_status_show,   NULL);
+GDLM_ATTR(proto_name,  0444, proto_name_show,  NULL);
+GDLM_ATTR(block,   0644, block_show,   block_store);
+GDLM_ATTR(withdraw,0644, withdraw_show,withdraw_store);
+GDLM_ATTR(id,  0444, lkid_show,NULL);
+GDLM_ATTR(jid, 0444, jid_show, NULL);
+GDLM_ATTR(first,   0444, lkfirst_show, NULL);
+GDLM_ATTR(first_done,  0444, first_done_show,  NULL);
+GDLM_ATTR(recover, 0600, NULL, recover_store);
+GDLM_ATTR(recover_done,0444, recover_done_show,NULL);
+GDLM_ATTR(recover_status,  0444, recover_status_show,  NULL);
 
 static struct attribute *lock_module_attrs[] = {
gdlm_attr_proto_name.attr,
-- 
1.6.2.5





[Cluster-devel] GFS2: Add a document explaining GFS2's uevents

2009-08-14 Thread Steven Whitehouse
From 3ea9c5e871070e91c71f8d42e19121b92608d10f Mon Sep 17 00:00:00 2001
From: Steven Whitehouse swhit...@redhat.com
Date: Fri, 14 Aug 2009 15:24:46 +0100
Subject: GFS2: Add a document explaining GFS2's uevents

This will be essential reading for anybody who wants to
understand how GFS2 interacts with the userland gfs_controld,
and the details of recovery.

Signed-off-by: Steven Whitehouse swhit...@redhat.com
Signed-off-by: Bob Peterson rpete...@redhat.com
---
 Documentation/filesystems/gfs2-uevents.txt |  100 
 1 files changed, 100 insertions(+), 0 deletions(-)
 create mode 100644 Documentation/filesystems/gfs2-uevents.txt

diff --git a/Documentation/filesystems/gfs2-uevents.txt 
b/Documentation/filesystems/gfs2-uevents.txt
new file mode 100644
index 000..fd966dc
--- /dev/null
+++ b/Documentation/filesystems/gfs2-uevents.txt
@@ -0,0 +1,100 @@
+  uevents and GFS2
+ ==
+
+During the lifetime of a GFS2 mount, a number of uevents are generated.
+This document explains what the events are and what they are used
+for (by gfs_controld in gfs2-utils).
+
+A list of GFS2 uevents
+---
+
+1. ADD
+
+The ADD event occurs at mount time. It will always be the first
+uevent generated by the newly created filesystem. If the mount
+is successful, an ONLINE uevent will follow.  If it is not successful
+then a REMOVE uevent will follow.
+
+The ADD uevent has two environment variables: SPECTATOR=[0|1]
+and RDONLY=[0|1] that specify the spectator status (a read-only mount
+with no journal assigned), and read-only (with journal assigned) status
+of the filesystem respectively.
+
+2. ONLINE
+
+The ONLINE uevent is generated after a successful mount or remount. It
+has the same environment variables as the ADD uevent. The ONLINE
+uevent, along with the two environment variables for spectator and
+RDONLY are a relatively recent addition (2.6.32-rc+) and will not
+be generated by older kernels.
+
+3. CHANGE
+
+The CHANGE uevent is used in two places. One is when reporting the
+successful mount of the filesystem by the first node (FIRSTMOUNT=Done).
+This is used as a signal by gfs_controld that it is then ok for other
+nodes in the cluster to mount the filesystem.
+
+The other CHANGE uevent is used to inform of the completion
+of journal recovery for one of the filesystems journals. It has
+two environment variables, JID= which specifies the journal id which
+has just been recovered, and RECOVERY=[Done|Failed] to indicate the
+success (or otherwise) of the operation. These uevents are generated
+for every journal recovered, whether it is during the initial mount
+process or as the result of gfs_controld requesting a specific journal
+recovery via the /sys/fs/gfs2/fsname/lock_module/recovery file.
+
+Because the CHANGE uevent was used (in early versions of gfs_controld)
+without checking the environment variables to discover the state, we
+cannot add any more functions to it without running the risk of
+someone using an older version of the user tools and breaking their
+cluster. For this reason the ONLINE uevent was used when adding a new
+uevent for a successful mount or remount.
+
+4. OFFLINE
+
+The OFFLINE uevent is only generated due to filesystem errors and is used
+as part of the withdraw mechanism. Currently this doesn't give any
+information about what the error is, which is something that needs to
+be fixed.
+
+5. REMOVE
+
+The REMOVE uevent is generated at the end of an unsuccessful mount
+or at the end of a umount of the filesystem. All REMOVE uevents will
+have been preceeded by at least an ADD uevent for the same fileystem,
+and unlike the other uevents is generated automatically by the kernel's
+kobject subsystem.
+
+
+Information common to all GFS2 uevents (uevent environment variables)
+--
+
+1. LOCKTABLE=
+
+The LOCKTABLE is a string, as supplied on the mount command
+line (locktable=) or via fstab. It is used as a filesystem label
+as well as providing the information for a lock_dlm mount to be
+able to join the cluster.
+
+2. LOCKPROTO=
+
+The LOCKPROTO is a string, and its value depends on what is set
+on the mount command line, or via fstab. It will be either
+lock_nolock or lock_dlm. In the future other lock managers
+may be supported.
+
+3. JOURNALID=
+
+If a journal is in use by the filesystem (journals are not
+assigned for spectator mounts) then this will give the
+numeric journal id in all GFS2 uevents.
+
+4. UUID=
+
+With recent versions of gfs2-utils, mkfs.gfs2 writes a UUID
+into the filesystem superblock. If it exists, this will
+be included in every uevent relating to the filesystem.
+
+
+
-- 
1.6.2.5