FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 08-23-2010, 12:29 PM
"Pierre Carrier"
 
Default Handle multiple filesystems on a single mountpoint

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
", 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
", non_gfs_found, mp);
+
fclose(file);

for (x = 0; *lines[x]; x++) {
--
1.7.2.1
 
Old 08-23-2010, 12:29 PM
"Pierre Carrier"
 
Default Handle multiple filesystems on a single mountpoint

Hello,


Here is a patch against gfs2-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
---
gfs2/mount/util.c | 14 ++++++++++++--
1 files changed, 12 insertions(+), 2 deletions(-)

diff --git a/gfs2/mount/util.c b/gfs2/mount/util.c
index 42cd8f0..06bdd2c 100644
--- a/gfs2/mount/util.c
+++ b/gfs2/mount/util.c
@@ -221,6 +221,7 @@ void read_proc_mounts(struct mount_options *mo)
char save_opts[PATH_MAX];
char save_device[PATH_MAX];
int found = 0;
+ unsigned int unexpected_type_found = 0;
struct stat st_mo_dev, st_mounts_dev;

file = fopen("/proc/mounts", "r");
@@ -244,8 +245,10 @@ void read_proc_mounts(struct mount_options *mo)
if (st_mo_dev.st_rdev != st_mounts_dev.st_rdev)
continue;
}
- if (strcmp(type, fsname))
- die("%s is not a %s filesystem
", mo->dir, fsname);
+ if (strcmp(type, fsname)) {
+ unexpected_type_found++;
+ continue;
+ }

/* when there is an input dev specified (mount), we should get
only one matching line; when there is no input dev specified
@@ -256,6 +259,13 @@ void read_proc_mounts(struct mount_options *mo)
strncpy(save_line, line, PATH_MAX);
found = 1;
}
+
+ if(!found) {
+ if(unexpected_type_found)
+ die("Only %u non-%s filesystems found on %s
",
+ unexpected_type_found, fsname, mo->dir);
+ die("%s is not a %s filesystem
", mo->dir, fsname);
+ }

fclose(file);

--
1.7.2.1
 

Thread Tools




All times are GMT. The time now is 07:53 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org