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-20-2009, 12:03 PM
Andrew Price
 
Default libgfs2: Remove 'die' from mp2fsname and find_debugfs_mount

Removes the call to 'die' from mp2fsname and updates its callers to
handle the error. Also removes the die calls from find_debugfs_mount
which only has one caller that already handles the error cases.

Signed-off-by: Andrew Price <andy@andrewprice.me.uk>
---
gfs2/libgfs2/misc.c | 10 ++++++----
gfs2/quota/check.c | 8 +++++++-
gfs2/quota/main.c | 10 ++++++++++
gfs2/tool/df.c | 5 +++++
gfs2/tool/misc.c | 15 +++++++++++++++
gfs2/tool/tune.c | 10 ++++++++++
6 files changed, 53 insertions(+), 5 deletions(-)

diff --git a/gfs2/libgfs2/misc.c b/gfs2/libgfs2/misc.c
index 7666ded..8441137 100644
--- a/gfs2/libgfs2/misc.c
+++ b/gfs2/libgfs2/misc.c
@@ -291,11 +291,13 @@ char *find_debugfs_mount(void)

file = fopen("/proc/mounts", "rt");
if (!file)
- die("can't open /proc/mounts: %s
", strerror(errno));
+ return NULL;

path = malloc(PATH_MAX);
- if (!path)
- die("Can't allocate memory for debugfs.
");
+ if (!path) {
+ fclose(file);
+ return NULL;
+ }
while (fgets(line, PATH_MAX, file)) {

if (sscanf(line, "%s %s %s", device, path, type) != 3)
@@ -432,7 +434,7 @@ char *mp2fsname(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] == '.')
diff --git a/gfs2/quota/check.c b/gfs2/quota/check.c
index 0352fa9..9223971 100644
--- a/gfs2/quota/check.c
+++ b/gfs2/quota/check.c
@@ -507,8 +507,14 @@ set_list(struct gfs2_sbd *sdp, commandline_t *comline, int user,
goto out;
}

- /* Write the id to sysfs quota refresh file to refresh gfs quotas */
fs = mp2fsname(comline->filesystem);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ comline->filesystem);
+ exit(-1);
+ }
+
+ /* Write the id to sysfs quota refresh file to refresh gfs quotas */
sprintf(id_str, "%d", comline->id);
if (set_sysfs(fs, (user) ? "quota_refresh_user" : "quota_refresh_group",
id_str)) {
diff --git a/gfs2/quota/main.c b/gfs2/quota/main.c
index 374b5ea..7b6ad78 100644
--- a/gfs2/quota/main.c
+++ b/gfs2/quota/main.c
@@ -783,6 +783,11 @@ do_sync_one(struct gfs2_sbd *sdp, char *filesystem)
char *fsname;

fsname = mp2fsname(filesystem);
+ if (!fsname) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ filesystem);
+ exit(-1);
+ }
if (set_sysfs(fsname, "quota_sync", "1")) {
fprintf(stderr, "Error writing to sysfs quota sync file: %s
",
strerror(errno));
@@ -992,6 +997,11 @@ do_set(struct gfs2_sbd *sdp, commandline_t *comline)
}

fs = mp2fsname(comline->filesystem);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ comline->filesystem);
+ exit(-1);
+ }
sprintf(id_str, "%d", comline->id);
if (set_sysfs(fs, comline->id_type == GQ_ID_USER ?
"quota_refresh_user" : "quota_refresh_group", id_str)) {
diff --git a/gfs2/tool/df.c b/gfs2/tool/df.c
index c817813..8b6d9b4 100644
--- a/gfs2/tool/df.c
+++ b/gfs2/tool/df.c
@@ -95,6 +95,11 @@ do_df_one(char *path)
exit(-1);
}
fs = mp2fsname(sbd.path_name);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ sbd.path_name);
+ exit(-1);
+ }

sbd.device_fd = open(sbd.device_name, O_RDONLY);
if (sbd.device_fd < 0)
diff --git a/gfs2/tool/misc.c b/gfs2/tool/misc.c
index 694acb8..3315e6e 100644
--- a/gfs2/tool/misc.c
+++ b/gfs2/tool/misc.c
@@ -272,6 +272,11 @@ print_args(int argc, char **argv)
exit(-1);
}
fs = mp2fsname(argv[optind]);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ argv[optind]);
+ exit(-1);
+ }

memset(path, 0, PATH_MAX);
snprintf(path, PATH_MAX - 1, "%s/%s/args/", SYS_BASE, fs);
@@ -457,6 +462,11 @@ do_shrink(int argc, char **argv)
exit(-1);
}
fs = mp2fsname(argv[optind]);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ argv[optind]);
+ exit(-1);
+ }

if (set_sysfs(fs, "shrink", "1")) {
fprintf(stderr, "Error writing to sysfs shrink file: %s
",
@@ -491,6 +501,11 @@ do_withdraw(int argc, char **argv)
exit(-1);
}
name = mp2fsname(argv[optind]);
+ if (!name) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ argv[optind]);
+ exit(-1);
+ }

if (set_sysfs(name, "withdraw", "1")) {
fprintf(stderr, "Error writing to sysfs withdraw file: %s
",
diff --git a/gfs2/tool/tune.c b/gfs2/tool/tune.c
index 29c529b..277d2dd 100644
--- a/gfs2/tool/tune.c
+++ b/gfs2/tool/tune.c
@@ -54,6 +54,11 @@ get_tune(int argc, char **argv)
exit(-1);
}
fs = mp2fsname(argv[optind]);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ argv[optind]);
+ exit(-1);
+ }
memset(path, 0, PATH_MAX);
snprintf(path, PATH_MAX - 1, "%s/%s/tune", SYS_BASE, fs);

@@ -117,6 +122,11 @@ set_tune(int argc, char **argv)
exit(-1);
}
fs = mp2fsname(sbd.path_name);
+ if (!fs) {
+ fprintf(stderr, "Couldn't find GFS2 filesystem mounted at %s
",
+ sbd.path_name);
+ exit(-1);
+ }

if (strcmp(param, "quota_scale") == 0) {
float s;
--
1.6.2
 

Thread Tools




All times are GMT. The time now is 01:47 PM.

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