From mboxrd@z Thu Jan 1 00:00:00 1970 From: Pierre Carrier Date: Mon, 23 Aug 2010 13:29:54 +0100 Subject: [Cluster-devel] [PATCH] Handle multiple filesystems on a single mountpoint Message-ID: <1282566595-2300-1-git-send-email-pcarrier@redhat.com> List-Id: To: cluster-devel.redhat.com MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Hello, Here is a patch against gfs1-utils.git Use-case: When both a GFS and a GFS2 filesystems are mounted on the same mountpoint, # umount /example /sbin/umount.gfs2: /example is not a gfs2 filesystem /sbin/umount.gfs: /example is not a gfs filesystem /sbin/umount.gfs2: /example is not a gfs2 filesystem Best regards, -- Pierre --- gfs/gfs_tool/util.c | 11 ++++++++--- 1 files changed, 8 insertions(+), 3 deletions(-) diff --git a/gfs/gfs_tool/util.c b/gfs/gfs_tool/util.c index f467b7e..bc9cf50 100644 --- a/gfs/gfs_tool/util.c +++ b/gfs/gfs_tool/util.c @@ -123,7 +123,7 @@ mp2cookie(char *mp, int ioctl_ok) char *list, **lines; FILE *file; char line[256], device[256], dev_id[256]; - unsigned int x; + unsigned int x, non_gfs_found = 0; struct stat st; cookie = malloc(256); @@ -145,8 +145,10 @@ mp2cookie(char *mp, int ioctl_ok) continue; if (strcmp(path, mp)) continue; - if (strcmp(type, "gfs")) - die("%s is not a GFS filesystem\n", mp); + if (strcmp(type, "gfs")) { + non_gfs_found++; + continue; + } if (stat(device, &st)) continue; @@ -154,6 +156,9 @@ mp2cookie(char *mp, int ioctl_ok) break; } + if(!dev_id[0] && non_gfs_found) + die("Only %u non-GFS filesystems are mounted on %s\n", non_gfs_found, mp); + fclose(file); for (x = 0; *lines[x]; x++) { -- 1.7.2.1