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