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 03-19-2009, 11:14 PM
Andrew Price
 
Default libgfs2: Clean up mp2fsname2

This patch removes the calls to 'die' and 'exit' from mp2fsname2 and
cleans up the function a bit. Namely, it removes an unused variable
(sb), adds error checking and fixes a typo.

Signed-off-by: Andrew Price <andy@andrewprice.me.uk>
---
gfs2/libgfs2/libgfs2.h | 2 +-
gfs2/libgfs2/misc.c | 21 ++++++++++++---------
gfs2/tool/misc.c | 5 +++++
3 files changed, 18 insertions(+), 10 deletions(-)

diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
index d8faf45..1742da9 100644
--- a/gfs2/libgfs2/libgfs2.h
+++ b/gfs2/libgfs2/libgfs2.h
@@ -632,7 +632,7 @@ extern int mount_gfs2_meta(struct gfs2_sbd *sdp);
extern void cleanup_metafs(struct gfs2_sbd *sdp);
extern char *find_debugfs_mount(void);
extern char *mp2fsname(char *mp);
-extern char *mp2fsname2(char *devname);
+extern char *mp2fsname2(char *mp);
extern char *get_sysfs(char *fsname, char *filename);
extern int get_sysfs_uint(char *fsname, char *filename, unsigned int *val);
extern int set_sysfs(char *fsname, char *filename, char *val);
diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c
index 60b2d4f..7666ded 100644
--- a/gfs2/libgfs2/misc.c
+++ b/gfs2/libgfs2/misc.c
@@ -314,7 +314,7 @@ char *find_debugfs_mount(void)
/*
* Same as mp2fsname, except that this function doesn't stat() the mountpoint
* to get the device no. Used by gfs2_tool freeze/unfreeze where we don't want
- * to touch the potetially frozen filesytem and hang gfs2_tool itself.
+ * to touch the potentially frozen filesytem and hang gfs2_tool itself.
*/
char *
mp2fsname2(char *mp)
@@ -323,8 +323,7 @@ mp2fsname2(char *mp)
struct stat statbuf;
DIR *d;
struct dirent *de;
- struct gfs2_sbd sb;
- FILE *fp = fopen("/proc/mounts", "r");
+ FILE *fp;
char buffer[PATH_MAX], device_name[PATH_MAX];
int fsdump, fspass, ret, found = 0;
char fspath[PATH_MAX], fsoptions[PATH_MAX], fstype[80];
@@ -334,9 +333,9 @@ mp2fsname2(char *mp)
if (mp[strlen(mp) - 1] == '/')
mp[strlen(mp) - 1] = 0;

+ fp = fopen("/proc/mounts", "r");
if (fp == NULL) {
- perror("open: /proc/mounts");
- exit(EXIT_FAILURE);
+ return NULL;
}

while ((fgets(buffer, PATH_MAX - 1, fp)) != NULL) {
@@ -358,9 +357,12 @@ mp2fsname2(char *mp)
found = 1;
break;
}
+ fclose(fp);

- if (!found)
- die("can't find gfs2 filesystem mounted at %s
", mp);
+ if (!found) {
+ errno = ENOENT;
+ return NULL;
+ }

if (stat(device_name, &statbuf))
return NULL;
@@ -371,7 +373,7 @@ mp2fsname2(char *mp)

d = opendir(SYS_BASE);
if (!d)
- die("can't open %s: %s
", SYS_BASE, strerror(errno));
+ return NULL;

while ((de = readdir(d))) {
if (de->d_name[0] == '.')
@@ -386,9 +388,10 @@ mp2fsname2(char *mp)
}
}

- fclose(fp);
closedir(d);

+ if (!fsname)
+ errno = ENOENT;
return fsname;
}

diff --git a/gfs2/tool/misc.c b/gfs2/tool/misc.c
index 6b054c6..694acb8 100644
--- a/gfs2/tool/misc.c
+++ b/gfs2/tool/misc.c
@@ -40,6 +40,11 @@ do_freeze(int argc, char **argv)
die("Usage: gfs2_tool %s <mountpoint>
", command);

name = mp2fsname2(argv[optind]);
+ if (!name) {
+ fprintf(stderr, "Couldn't find a GFS2 filesystem mounted at %s
",
+ argv[optind]);
+ exit(-1);
+ }

if (strcmp(command, "freeze") == 0) {
if (set_sysfs(name, "freeze", "1")) {
--
1.6.2
 
Old 03-20-2009, 09:13 AM
Steven Whitehouse
 
Default libgfs2: Clean up mp2fsname2

Hi,

Looks good to me,

Steve.

On Fri, 2009-03-20 at 00:14 +0000, Andrew Price wrote:
> This patch removes the calls to 'die' and 'exit' from mp2fsname2 and
> cleans up the function a bit. Namely, it removes an unused variable
> (sb), adds error checking and fixes a typo.
>
> Signed-off-by: Andrew Price <andy@andrewprice.me.uk>
> ---
> gfs2/libgfs2/libgfs2.h | 2 +-
> gfs2/libgfs2/misc.c | 21 ++++++++++++---------
> gfs2/tool/misc.c | 5 +++++
> 3 files changed, 18 insertions(+), 10 deletions(-)
>
> diff --git a/gfs2/libgfs2/libgfs2.h b/gfs2/libgfs2/libgfs2.h
> index d8faf45..1742da9 100644
> --- a/gfs2/libgfs2/libgfs2.h
> +++ b/gfs2/libgfs2/libgfs2.h
> @@ -632,7 +632,7 @@ extern int mount_gfs2_meta(struct gfs2_sbd *sdp);
> extern void cleanup_metafs(struct gfs2_sbd *sdp);
> extern char *find_debugfs_mount(void);
> extern char *mp2fsname(char *mp);
> -extern char *mp2fsname2(char *devname);
> +extern char *mp2fsname2(char *mp);
> extern char *get_sysfs(char *fsname, char *filename);
> extern int get_sysfs_uint(char *fsname, char *filename, unsigned int *val);
> extern int set_sysfs(char *fsname, char *filename, char *val);
> diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c
> index 60b2d4f..7666ded 100644
> --- a/gfs2/libgfs2/misc.c
> +++ b/gfs2/libgfs2/misc.c
> @@ -314,7 +314,7 @@ char *find_debugfs_mount(void)
> /*
> * Same as mp2fsname, except that this function doesn't stat() the mountpoint
> * to get the device no. Used by gfs2_tool freeze/unfreeze where we don't want
> - * to touch the potetially frozen filesytem and hang gfs2_tool itself.
> + * to touch the potentially frozen filesytem and hang gfs2_tool itself.
> */
> char *
> mp2fsname2(char *mp)
> @@ -323,8 +323,7 @@ mp2fsname2(char *mp)
> struct stat statbuf;
> DIR *d;
> struct dirent *de;
> - struct gfs2_sbd sb;
> - FILE *fp = fopen("/proc/mounts", "r");
> + FILE *fp;
> char buffer[PATH_MAX], device_name[PATH_MAX];
> int fsdump, fspass, ret, found = 0;
> char fspath[PATH_MAX], fsoptions[PATH_MAX], fstype[80];
> @@ -334,9 +333,9 @@ mp2fsname2(char *mp)
> if (mp[strlen(mp) - 1] == '/')
> mp[strlen(mp) - 1] = 0;
>
> + fp = fopen("/proc/mounts", "r");
> if (fp == NULL) {
> - perror("open: /proc/mounts");
> - exit(EXIT_FAILURE);
> + return NULL;
> }
>
> while ((fgets(buffer, PATH_MAX - 1, fp)) != NULL) {
> @@ -358,9 +357,12 @@ mp2fsname2(char *mp)
> found = 1;
> break;
> }
> + fclose(fp);
>
> - if (!found)
> - die("can't find gfs2 filesystem mounted at %s
", mp);
> + if (!found) {
> + errno = ENOENT;
> + return NULL;
> + }
>
> if (stat(device_name, &statbuf))
> return NULL;
> @@ -371,7 +373,7 @@ mp2fsname2(char *mp)
>
> d = opendir(SYS_BASE);
> if (!d)
> - die("can't open %s: %s
", SYS_BASE, strerror(errno));
> + return NULL;
>
> while ((de = readdir(d))) {
> if (de->d_name[0] == '.')
> @@ -386,9 +388,10 @@ mp2fsname2(char *mp)
> }
> }
>
> - fclose(fp);
> closedir(d);
>
> + if (!fsname)
> + errno = ENOENT;
> return fsname;
> }
>
> diff --git a/gfs2/tool/misc.c b/gfs2/tool/misc.c
> index 6b054c6..694acb8 100644
> --- a/gfs2/tool/misc.c
> +++ b/gfs2/tool/misc.c
> @@ -40,6 +40,11 @@ do_freeze(int argc, char **argv)
> die("Usage: gfs2_tool %s <mountpoint>
", command);
>
> name = mp2fsname2(argv[optind]);
> + if (!name) {
> + fprintf(stderr, "Couldn't find a GFS2 filesystem mounted at %s
",
> + argv[optind]);
> + exit(-1);
> + }
>
> if (strcmp(command, "freeze") == 0) {
> if (set_sysfs(name, "freeze", "1")) {
 

Thread Tools




All times are GMT. The time now is 04:13 AM.

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