Linux Archive

Linux Archive (http://www.linux-archive.org/)
-   Cluster Development (http://www.linux-archive.org/cluster-development/)
-   -   mkfs: fix error handling (http://www.linux-archive.org/cluster-development/583369-mkfs-fix-error-handling.html)

Carlos Maiolino 10-04-2011 01:25 PM

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

Steven Whitehouse 10-04-2011 01:40 PM

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 02:35 AM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.