[Cluster-devel] cluster/gfs/gfs_grow main.c
rpeterso at sourceware.org
rpeterso at sourceware.org
Thu Oct 25 20:02:52 UTC 2007
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: rpeterso at sourceware.org 2007-10-25 20:02:51
Modified files:
gfs/gfs_grow : main.c
Log message:
Resolves: bz 337961: gfs_grow /mountpoint/ does not work
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs/gfs_grow/main.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.5.2.1&r2=1.5.2.2
--- cluster/gfs/gfs_grow/main.c 2007/01/17 19:08:25 1.5.2.1
+++ cluster/gfs/gfs_grow/main.c 2007/10/25 20:02:51 1.5.2.2
@@ -729,33 +729,42 @@
*/
static int
-find_fs(char *name)
+find_fs(const char *name)
{
FILE *fp = fopen("/proc/mounts", "r");
char buffer[4096];
char fstype[80];
int fsdump, fspass;
+ char *realname;
+ realname = realpath(name, NULL);
+ if (!realname) {
+ perror(name);
+ return -1;
+ }
if (fp == NULL) {
perror("open: /proc/mounts");
exit(EXIT_FAILURE);
}
while ((fgets(buffer, 4095, fp)) != NULL) {
buffer[4095] = 0;
- if (strstr(buffer, name) == 0)
+ if (strstr(buffer, realname) == 0)
continue;
if (sscanf(buffer, "%s %s %s %s %d %d", device, fspath, fstype,
fsoptions, &fsdump, &fspass) != 6)
continue;
if (strcmp(fstype, "gfs") != 0)
continue;
- if ((strcmp(device, name) != 0) && (strcmp(fspath, name) != 0))
+ if ((strcmp(device, realname) != 0) &&
+ (strcmp(fspath, realname) != 0))
continue;
fclose(fp);
+ free(realname);
return 0;
}
fprintf(stderr, "GFS Filesystem %s not found\n", name);
fclose(fp);
+ free(realname);
return 1;
}
More information about the Cluster-devel
mailing list