Commit:     0b7580c786a5feda6291fe68ead3a1b92b6b35b8
Parent:     e35b921185728850c5db3b5d5b356178f931a157
Author:     Fabio Massimo Di Nitto <[EMAIL PROTECTED]>
AuthorDate: Thu Nov 15 13:48:52 2007 +0000
Committer:  Steven Whitehouse <[EMAIL PROTECTED]>
CommitDate: Fri Jan 25 08:08:01 2008 +0000

    [GFS2] Check for installation of mount helpers for DLM mounts
    The patch is a fix to abort mount if the mount.gfs* and possible
    umount.* are missing from /sbin.
    While we do what we can to guarantee that they are installed properly in
    userland (CVS HEAD), we want to make sure that mount still aborts properly.
    The only sign of missing helpers is that lock_dlm will receive no mount 
    at all. According to David the problem does not exist for lock_nolock as the
    helpers are not required.
    The patch has been tested for both gfs and gfs2 and it works as expected. 
    lack of mount.gfs* will generate an error that is propagated to mount:
    [EMAIL PROTECTED]:~# mount -t  gfs2 /dev/nbd2 /mnt/
    mount: wrong fs type, bad option, bad superblock on /dev/nbd2,
           missing codepage or helper program, or other error
           In some cases useful info is found in syslog - try
           dmesg | tail  or so
    [ 3513.303346] GFS2: fsid=: Trying to join cluster "lock_dlm", "gutsy:gfs2"
    [ 3513.304546] DLM/GFS2/GFS ERROR: (u)mount helpers are not installed 
    [ 3513.306290] GFS2: fsid=: can't mount proto=lock_dlm, table=gutsy:gfs2, 
    You might want to notice that it will also avoid mount to hang or fail 
    or with strange errors that will require the cluster to reboot/restart 
    you can actually mount the filesystem again.
    Signed-off-by: Fabio M. Di Nitto <[EMAIL PROTECTED]>
    Signed-off-by: Steven Whitehouse <[EMAIL PROTECTED]>
 fs/gfs2/locking/dlm/mount.c |    6 ++++++
 1 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/fs/gfs2/locking/dlm/mount.c b/fs/gfs2/locking/dlm/mount.c
index 41c5b04..ab30102 100644
--- a/fs/gfs2/locking/dlm/mount.c
+++ b/fs/gfs2/locking/dlm/mount.c
@@ -67,6 +67,12 @@ static int make_args(struct gdlm_ls *ls, char *data_arg, int 
        memset(data, 0, 256);
        strncpy(data, data_arg, 255);
+       if (!strlen(data)) {
+               printk(KERN_ERR
+                      "DLM/GFS2/GFS ERROR: (u)mount helpers are not 
+               return -EINVAL;
+       }
        for (options = data; (x = strsep(&options, ":")); ) {
                if (!*x)
To unsubscribe from this list: send the line "unsubscribe git-commits-head" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at

Reply via email to