This patch fixes some error handlers, taking advantage of glic on most places where an error check is needed. Also, it adds some exit() calls missing in mkfs and gfs2_grow
Signed-off-by: Carlos Maiolino <cmaiol...@redhat.com> --- gfs2/mkfs/main_grow.c | 8 ++- gfs2/mkfs/main_jadd.c | 149 ++++++++++++++++++++++-------------------------- gfs2/mkfs/main_mkfs.c | 8 ++- 3 files changed, 80 insertions(+), 85 deletions(-) diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c index c48497f..f6d7bf0 100644 --- a/gfs2/mkfs/main_grow.c +++ b/gfs2/mkfs/main_grow.c @@ -310,8 +310,10 @@ main_grow(int argc, char *argv[]) sdp->path_name = argv[optind++]; sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); - if (sdp->path_fd < 0) + if (sdp->path_fd < 0){ perror(sdp->path_name); + exit(EXIT_FAILURE); + } if (check_for_gfs2(sdp)) { perror(sdp->path_name); @@ -319,8 +321,10 @@ main_grow(int argc, char *argv[]) } sdp->device_fd = open(sdp->device_name, (test ? O_RDONLY : O_RDWR) | O_CLOEXEC); - if (sdp->device_fd < 0) + if (sdp->device_fd < 0){ perror(sdp->device_name); + exit(EXIT_FAILURE); + } if (device_geometry(sdp)) { perror(_("Device geometry error")); diff --git a/gfs2/mkfs/main_jadd.c b/gfs2/mkfs/main_jadd.c index d722d52..e060cc2 100644 --- a/gfs2/mkfs/main_jadd.c +++ b/gfs2/mkfs/main_jadd.c @@ -34,15 +34,21 @@ make_jdata(int fd, const char *value) uint32_t val; err = ioctl(fd, FS_IOC_GETFLAGS, &val); - if (err) - die( _("error doing get flags (%d): %s\n"), err, strerror(errno)); + if (err){ + perror("GETFLAGS"); + exit(EXIT_FAILURE); + } + if (strcmp(value, "set") == 0) val |= FS_JOURNAL_DATA_FL; if (strcmp(value, "clear") == 0) val &= ~FS_JOURNAL_DATA_FL; err = ioctl(fd, FS_IOC_SETFLAGS, &val); - if (err) - die( _("error doing set flags (%d): %s\n"), err, strerror(errno)); + + if (err){ + perror("SETFLAGS"); + exit(EXIT_FAILURE); + } } static int @@ -211,11 +217,14 @@ create_new_inode(struct gfs2_sbd *sdp) break; if (errno == EEXIST) { error = unlink(name); - if (error) - die( _("can't unlink %s: %s\n"), - name, strerror(errno)); - } else - die( _("can't create %s: %s\n"), name, strerror(errno)); + if (error){ + perror("unlink"); + exit(EXIT_FAILURE); + } + } else{ + perror("create"); + exit(EXIT_FAILURE); + } } return fd; @@ -236,10 +245,8 @@ add_ir(struct gfs2_sbd *sdp) memset(&ir, 0, sizeof(struct gfs2_inum_range)); if (write(fd, (void*)&ir, sizeof(struct gfs2_inum_range)) != sizeof(struct gfs2_inum_range)) { - fprintf(stderr, _( "write error: %s from %s:%d: " - "offset 0\n"), strerror(errno), - __FUNCTION__, __LINE__); - exit(-1); + perror("add_ir"); + exit(EXIT_FAILURE); } } @@ -247,9 +254,10 @@ add_ir(struct gfs2_sbd *sdp) sprintf(new_name, "inum_range%u", sdp->md.journals); error = rename2system(sdp, "per_node", new_name); - if (error < 0 && errno != EEXIST) - die( _("can't rename2system %s (%d): %s\n"), - new_name, error, strerror(errno)); + if (error < 0 && errno != EEXIST){ + perror("add_ir rename2system"); + exit(EXIT_FAILURE); + } } static void @@ -268,10 +276,8 @@ add_sc(struct gfs2_sbd *sdp) memset(&sc, 0, sizeof(struct gfs2_statfs_change)); if (write(fd, (void*)&sc, sizeof(struct gfs2_statfs_change)) != sizeof(struct gfs2_statfs_change)) { - fprintf(stderr, _("write error: %s from %s:%d: " - "offset 0\n"), strerror(errno), - __FUNCTION__, __LINE__); - exit(-1); + perror("add_sc"); + exit(EXIT_FAILURE); } } @@ -279,9 +285,10 @@ add_sc(struct gfs2_sbd *sdp) sprintf(new_name, "statfs_change%u", sdp->md.journals); error = rename2system(sdp, "per_node", new_name); - if (error < 0 && errno != EEXIST) - die( _("can't rename2system %s (%d): %s\n"), - new_name, error, strerror(errno)); + if (error < 0 && errno != EEXIST){ + perror("add_sc rename2system"); + exit(EXIT_FAILURE); + } } static void @@ -307,13 +314,8 @@ add_qc(struct gfs2_sbd *sdp) for (x=0; x<blocks; x++) { if (write(fd, buf, sdp->bsize) != sdp->bsize) { - fprintf(stderr, _("write error: %s from %s:%d: " - "block %lld (0x%llx)\n"), - strerror(errno), - __FUNCTION__, __LINE__, - (unsigned long long)x, - (unsigned long long)x); - exit(-1); + perror("add_qc"); + exit(EXIT_FAILURE); } } @@ -327,29 +329,26 @@ add_qc(struct gfs2_sbd *sdp) for (x=0; x<blocks; x++) { if (write(fd, buf, sdp->bsize) != sdp->bsize) { - fprintf(stderr, _("write error: %s from %s:%d: " - "block %lld (0x%llx)\n"), - strerror(errno), - __FUNCTION__, __LINE__, - (unsigned long long)x, - (unsigned long long)x); - exit(-1); + perror("add_qc"); + exit(EXIT_FAILURE); } } error = fsync(fd); - if (error) - die( _("can't fsync: %s\n"), - strerror(errno)); + if (error){ + perror("add_qc fsync"); + exit(EXIT_FAILURE); + } } close(fd); sprintf(new_name, "quota_change%u", sdp->md.journals); error = rename2system(sdp, "per_node", new_name); - if (error < 0 && errno != EEXIST) - die( _("can't rename2system %s (%d): %s\n"), - new_name, error, strerror(errno)); + if (error < 0 && errno != EEXIST){ + perror("add_qc rename2system"); + exit(EXIT_FAILURE); + } } static void @@ -357,8 +356,8 @@ gather_info(struct gfs2_sbd *sdp) { struct statfs statbuf; if (statfs(sdp->path_name, &statbuf) < 0) { - die( _("Could not statfs the filesystem %s: %s\n"), - sdp->path_name, strerror(errno)); + perror(sdp->path_name); + exit(EXIT_FAILURE); } sdp->bsize = statbuf.f_bsize; } @@ -374,8 +373,8 @@ find_current_journals(struct gfs2_sbd *sdp) sprintf(jindex, "%s/jindex", sdp->metafs_path); dirp = opendir(jindex); if (!dirp) { - die( _("Could not find the jindex directory " - "in gfs2meta mount! error: %s\n"), strerror(errno)); + perror("jindex"); + exit(EXIT_FAILURE); } while (dirp) { if ((dp = readdir(dirp)) != NULL) { @@ -415,13 +414,8 @@ add_j(struct gfs2_sbd *sdp) memset(buf, 0, sdp->bsize); for (x=0; x<blocks; x++) { if (write(fd, buf, sdp->bsize) != sdp->bsize) { - fprintf(stderr, _("write error: %s from %s:%d: " - "block %lld (0x%llx)\n"), - strerror(errno), - __FUNCTION__, __LINE__, - (unsigned long long)x, - (unsigned long long)x); - exit(-1); + perror("add_j"); + exit(EXIT_FAILURE); } } @@ -445,13 +439,8 @@ add_j(struct gfs2_sbd *sdp) ((struct gfs2_log_header *)buf)->lh_hash = cpu_to_be32(hash); if (write(fd, buf, sdp->bsize) != sdp->bsize) { - fprintf(stderr, _("write error: %s from %s:%d: " - "block %lld (0x%llx)\n"), - strerror(errno), - __FUNCTION__, __LINE__, - (unsigned long long)x, - (unsigned long long)x); - exit(-1); + perror("add_j"); + exit(EXIT_FAILURE); } if (++seq == blocks) @@ -459,18 +448,20 @@ add_j(struct gfs2_sbd *sdp) } error = fsync(fd); - if (error) - die( _("can't fsync: %s\n"), - strerror(errno)); + if (error){ + perror("add_j fsync"); + exit(EXIT_FAILURE); + } } close(fd); sprintf(new_name, "journal%u", sdp->md.journals); error = rename2system(sdp, "jindex", new_name); - if (error < 0 && errno != EEXIST) - die( _("can't rename2system %s (%d): %s\n"), - new_name, error, strerror(errno)); + if (error < 0 && errno != EEXIST){ + perror("add_j rename2system"); + exit(EXIT_FAILURE); + } } /** @@ -494,30 +485,26 @@ void main_jadd(int argc, char *argv[]) verify_arguments(sdp); sdp->path_fd = open(sdp->path_name, O_RDONLY | O_CLOEXEC); - if (sdp->path_fd < 0) - die( _("can't open root directory %s: %s\n"), - sdp->path_name, strerror(errno)); + if (sdp->path_fd < 0){ + perror(sdp->path_name); + exit(EXIT_FAILURE); + } if (check_for_gfs2(sdp)) { - if (errno == EINVAL) - fprintf(stderr, _("Not a valid GFS2 mount point: %s\n"), - sdp->path_name); - else - fprintf(stderr, "%s\n", strerror(errno)); - exit(-1); + perror(sdp->path_name); + exit(EXIT_FAILURE); } gather_info(sdp); if (mount_gfs2_meta(sdp)) { - fprintf(stderr, _("Error mounting GFS2 metafs: %s\n"), - strerror(errno)); - exit(-1); + perror("GFS2 metafs"); + exit(EXIT_FAILURE); } if (compute_constants(sdp)) { - fprintf(stderr, _("Bad constants (1)\n")); - exit(-1); + perror(_("Bad constants (1)")); + exit(EXIT_FAILURE); } find_current_journals(sdp); diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c index 771feba..6de1d12 100644 --- a/gfs2/mkfs/main_mkfs.c +++ b/gfs2/mkfs/main_mkfs.c @@ -683,13 +683,17 @@ void main_mkfs(int argc, char *argv[]) gfs2_rgrp_free(&sdp->rgtree); error = fsync(sdp->device_fd); - if (error) + if (error){ perror(sdp->device_name); + exit(EXIT_FAILURE); + } error = close(sdp->device_fd); - if (error) + if (error){ perror(sdp->device_name); + exit(EXIT_FAILURE); + } print_results(sdp, real_device_size, uuid); } -- 1.7.6.2