mkfs: fix error handling
this patch replaces some error handlers by
calls to perror. Also replace calls to die() by exit() and fixes some exit() arguments to be compliant with C standard Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com> --- gfs2/mkfs/main_mkfs.c | 59 +++++++++++++++++++++++++------------------------ 1 files changed, 30 insertions(+), 29 deletions(-) diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c index 0bd1410..f35f5b0 100644 --- a/gfs2/mkfs/main_mkfs.c +++ b/gfs2/mkfs/main_mkfs.c @@ -551,22 +551,22 @@ void main_mkfs(int argc, char *argv[]) verify_arguments(sdp); sdp->device_fd = open(sdp->device_name, O_RDWR | O_CLOEXEC); - if (sdp->device_fd < 0) - die( _("can't open device %s: %s "), - sdp->device_name, strerror(errno)); + if (sdp->device_fd < 0){ + perror(sdp->device_name); + exit(EXIT_FAILURE); + } if (fstat(sdp->device_fd, &st_buf) < 0) { - fprintf(stderr, _("could not fstat fd %d: %s "), - sdp->device_fd, strerror(errno)); - exit(-1); + perror(sdp->device_name); + exit(EXIT_FAILURE); } if (!sdp->override) are_you_sure(); if (!S_ISREG(st_buf.st_mode) && device_topology(sdp)) { - fprintf(stderr, _("Device topology error ")); - exit(-1); + perror(_("Device topology error ")); + exit(EXIT_FAILURE); } if (sdp->bsize == -1) { @@ -591,16 +591,16 @@ void main_mkfs(int argc, char *argv[]) verify_bsize(sdp); if (compute_constants(sdp)) { - fprintf(stderr, _("Bad constants (1) ")); - exit(-1); + perror(_("Bad constants (1) ")); + exit(EXIT_FAILURE); } /* Get the device geometry */ device_size(sdp->device_fd, &real_device_size); if (device_geometry(sdp)) { - fprintf(stderr, _("Geometry error ")); - exit(-1); + perror(_("Device geometry error ")); + exit(EXIT_FAILURE); } /* Convert optional block-count to basic blocks */ if (sdp->orig_fssize) { @@ -618,7 +618,7 @@ void main_mkfs(int argc, char *argv[]) if (fix_device_geometry(sdp)) { fprintf(stderr, _("Device is too small (%llu bytes) "), (unsigned long long)sdp->device.length << GFS2_BASIC_BLOCK_SHIFT); - exit(-1); + exit(EXIT_FAILURE); } if (discard) @@ -639,35 +639,35 @@ void main_mkfs(int argc, char *argv[]) build_sb(sdp, uuid); error = build_jindex(sdp); if (error) { - fprintf(stderr, _("Error building jindex: %s "), strerror(error)); - exit(-1); + perror(_("Error building jindex")); + exit(EXIT_FAILURE); } error = build_per_node(sdp); if (error) { - fprintf(stderr, _("Error building per-node directory: %s "), strerror(error)); - exit(-1); + perror(_("Error building per-node directory")); + exit(EXIT_FAILURE); } error = build_inum(sdp); if (error) { - fprintf(stderr, _("Error building inum inode: %s "), strerror(error)); - exit(-1); + perror(_("Error building inum inode")); + exit(EXIT_FAILURE); } gfs2_lookupi(sdp->master_dir, "inum", 4, &sdp->md.inum); error = build_statfs(sdp); if (error) { - fprintf(stderr, _("Error building statfs inode: %s "), strerror(error)); - exit(-1); + perror(_("Error building statfs inode")); + exit(EXIT_FAILURE); } gfs2_lookupi(sdp->master_dir, "statfs", 6, &sdp->md.statfs); error = build_rindex(sdp); if (error) { - fprintf(stderr, _("Error building rindex inode: %s "), strerror(error)); - exit(-1); + perror(_("Error building rindex inode")); + exit(EXIT_FAILURE); } error = build_quota(sdp); if (error) { - fprintf(stderr, _("Error building quota inode: %s "), strerror(error)); - exit(-1); + perror(_("Error building quota inode")); + exit(EXIT_FAILURE); } do_init_inum(sdp); @@ -682,13 +682,14 @@ void main_mkfs(int argc, char *argv[]) gfs2_rgrp_free(&sdp->rgtree); error = fsync(sdp->device_fd); + if (error) - die( _("can't fsync device (%d): %s "), - error, strerror(errno)); + perror(sdp->device_name); + error = close(sdp->device_fd); + if (error) - die( _("error closing device (%d): %s "), - error, strerror(errno)); + perror(sdp->device_name); print_results(sdp, real_device_size, uuid); } -- 1.7.6.2 |
mkfs: fix error handling
Hi,
Looks good to me, Steve. On Tue, 2011-10-04 at 10:25 -0300, Carlos Maiolino wrote: > this patch replaces some error handlers by > calls to perror. Also replace calls to die() > by exit() and fixes some exit() arguments to > be compliant with C standard > > Signed-off-by: Carlos Maiolino <cmaiolino@redhat.com> > --- > gfs2/mkfs/main_mkfs.c | 59 +++++++++++++++++++++++++------------------------ > 1 files changed, 30 insertions(+), 29 deletions(-) > > diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c > index 0bd1410..f35f5b0 100644 > --- a/gfs2/mkfs/main_mkfs.c > +++ b/gfs2/mkfs/main_mkfs.c > @@ -551,22 +551,22 @@ void main_mkfs(int argc, char *argv[]) > verify_arguments(sdp); > > sdp->device_fd = open(sdp->device_name, O_RDWR | O_CLOEXEC); > - if (sdp->device_fd < 0) > - die( _("can't open device %s: %s "), > - sdp->device_name, strerror(errno)); > + if (sdp->device_fd < 0){ > + perror(sdp->device_name); > + exit(EXIT_FAILURE); > + } > > if (fstat(sdp->device_fd, &st_buf) < 0) { > - fprintf(stderr, _("could not fstat fd %d: %s "), > - sdp->device_fd, strerror(errno)); > - exit(-1); > + perror(sdp->device_name); > + exit(EXIT_FAILURE); > } > > if (!sdp->override) > are_you_sure(); > > if (!S_ISREG(st_buf.st_mode) && device_topology(sdp)) { > - fprintf(stderr, _("Device topology error ")); > - exit(-1); > + perror(_("Device topology error ")); > + exit(EXIT_FAILURE); > } > > if (sdp->bsize == -1) { > @@ -591,16 +591,16 @@ void main_mkfs(int argc, char *argv[]) > verify_bsize(sdp); > > if (compute_constants(sdp)) { > - fprintf(stderr, _("Bad constants (1) ")); > - exit(-1); > + perror(_("Bad constants (1) ")); > + exit(EXIT_FAILURE); > } > > /* Get the device geometry */ > > device_size(sdp->device_fd, &real_device_size); > if (device_geometry(sdp)) { > - fprintf(stderr, _("Geometry error ")); > - exit(-1); > + perror(_("Device geometry error ")); > + exit(EXIT_FAILURE); > } > /* Convert optional block-count to basic blocks */ > if (sdp->orig_fssize) { > @@ -618,7 +618,7 @@ void main_mkfs(int argc, char *argv[]) > if (fix_device_geometry(sdp)) { > fprintf(stderr, _("Device is too small (%llu bytes) "), > (unsigned long long)sdp->device.length << GFS2_BASIC_BLOCK_SHIFT); > - exit(-1); > + exit(EXIT_FAILURE); > } > > if (discard) > @@ -639,35 +639,35 @@ void main_mkfs(int argc, char *argv[]) > build_sb(sdp, uuid); > error = build_jindex(sdp); > if (error) { > - fprintf(stderr, _("Error building jindex: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building jindex")); > + exit(EXIT_FAILURE); > } > error = build_per_node(sdp); > if (error) { > - fprintf(stderr, _("Error building per-node directory: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building per-node directory")); > + exit(EXIT_FAILURE); > } > error = build_inum(sdp); > if (error) { > - fprintf(stderr, _("Error building inum inode: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building inum inode")); > + exit(EXIT_FAILURE); > } > gfs2_lookupi(sdp->master_dir, "inum", 4, &sdp->md.inum); > error = build_statfs(sdp); > if (error) { > - fprintf(stderr, _("Error building statfs inode: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building statfs inode")); > + exit(EXIT_FAILURE); > } > gfs2_lookupi(sdp->master_dir, "statfs", 6, &sdp->md.statfs); > error = build_rindex(sdp); > if (error) { > - fprintf(stderr, _("Error building rindex inode: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building rindex inode")); > + exit(EXIT_FAILURE); > } > error = build_quota(sdp); > if (error) { > - fprintf(stderr, _("Error building quota inode: %s "), strerror(error)); > - exit(-1); > + perror(_("Error building quota inode")); > + exit(EXIT_FAILURE); > } > > do_init_inum(sdp); > @@ -682,13 +682,14 @@ void main_mkfs(int argc, char *argv[]) > > gfs2_rgrp_free(&sdp->rgtree); > error = fsync(sdp->device_fd); > + > if (error) > - die( _("can't fsync device (%d): %s "), > - error, strerror(errno)); > + perror(sdp->device_name); > + > error = close(sdp->device_fd); > + > if (error) > - die( _("error closing device (%d): %s "), > - error, strerror(errno)); > + perror(sdp->device_name); > > print_results(sdp, real_device_size, uuid); > } |
| All times are GMT. The time now is 12:49 AM. |
VBulletin, Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.