[Cluster-devel] [PATCH] gfs2_grow: fix error handling, i18n strings

Steven Whitehouse swhiteho at redhat.com
Tue Oct 4 14:56:31 UTC 2011


Hi,

Looks good to me,

Steve.

On Tue, 2011-10-04 at 11:49 -0300, Carlos Maiolino wrote:
> This patch fixes some error handling into gfs2_grow,
> but also fix some strings to be complaing with i18n.
> Also, it fixes 2 perror calls from mkfs, removing
> new-line characters (\n) from the perror() call, since
> perror() should be called without any format character
> 
> Signed-off-by: Carlos Maiolino <cmaiolino at redhat.com>
> ---
>  gfs2/mkfs/main_grow.c |   52 ++++++++++++++++++++----------------------------
>  gfs2/mkfs/main_mkfs.c |    4 +-
>  2 files changed, 24 insertions(+), 32 deletions(-)
> 
> diff --git a/gfs2/mkfs/main_grow.c b/gfs2/mkfs/main_grow.c
> index 7a32d7e..c48497f 100644
> --- a/gfs2/mkfs/main_grow.c
> +++ b/gfs2/mkfs/main_grow.c
> @@ -202,7 +202,7 @@ static void fix_rindex(struct gfs2_sbd *sdp, int rindex_fd, int old_rg_count)
>  	buf = calloc(1, writelen);
>  	if (buf == NULL) {
>  		perror(__FUNCTION__);
> -		exit(-1);
> +		exit(EXIT_FAILURE);
>  	}
>  	/* Now add the new rg entries to the rg index.  Here we     */
>  	/* need to use the gfs2 kernel code rather than the libgfs2 */
> @@ -219,13 +219,13 @@ static void fix_rindex(struct gfs2_sbd *sdp, int rindex_fd, int old_rg_count)
>  	fsync(sdp->device_fd);
>  	if (!test) {
>  		if (fstat(rindex_fd, &statbuf) != 0) {
> -			log_crit("Can't stat rindex : %s\n", strerror(errno));
> +			perror("rindex");
>  			goto out;
>  		}
>  		if (statbuf.st_size !=
>  		    old_rg_count * sizeof(struct gfs2_rindex)) {
> -			log_crit("Incorrect rindex size. want %ld(%d RGs), "
> -				 "have %ld\n",
> +			log_crit(_("Incorrect rindex size. want %ld(%d RGs), "
> +				 "have %ld\n"),
>  				 old_rg_count * sizeof(struct gfs2_rindex),
>  				 old_rg_count, statbuf.st_size);
>  			goto out;
> @@ -234,8 +234,8 @@ static void fix_rindex(struct gfs2_sbd *sdp, int rindex_fd, int old_rg_count)
>  		lseek(rindex_fd, 0, SEEK_END);
>  		count = write(rindex_fd, buf, sizeof(struct gfs2_rindex));
>  		if (count != sizeof(struct gfs2_rindex)) {
> -			log_crit("Error writing first new rindex entry;"
> -				 "aborted.\n");
> +			log_crit(_("Error writing first new rindex entry;"
> +				 "aborted.\n"));
>  			if (count > 0)
>  				goto trunc;
>  			else
> @@ -244,16 +244,15 @@ static void fix_rindex(struct gfs2_sbd *sdp, int rindex_fd, int old_rg_count)
>  		count = write(rindex_fd, buf + sizeof(struct gfs2_rindex),
>  			      writelen - sizeof(struct gfs2_rindex));
>  		if (count != writelen - sizeof(struct gfs2_rindex)) {
> -			log_crit("Error writing new rindex entries;"
> -				 "aborted.\n");
> +			log_crit(_("Error writing new rindex entries;"
> +				 "aborted.\n"));
>  			if (count > 0)
>  				goto trunc;
>  			else
>  				goto out;
>  		}
>  		if (fallocate(rindex_fd, FALLOC_FL_KEEP_SIZE, statbuf.st_size + writelen, sizeof(struct gfs2_rindex)) != 0)
> -			log_crit("Error fallocating extra space : %s\n",
> -				 strerror(errno));
> +			perror("fallocate");
>  		fsync(rindex_fd);
>  	}
>  out:
> @@ -261,7 +260,7 @@ out:
>  	return;
>  trunc:
>  	count = (count / sizeof(struct gfs2_rindex)) + old_rg_count;
> -	log_crit("truncating rindex to %ld\n",
> +	log_crit(_("truncating rindex to %ld\n"),
>  		 (off_t)count * sizeof(struct gfs2_rindex));
>  	ftruncate(rindex_fd, (off_t)count * sizeof(struct gfs2_rindex));
>  	free(buf);
> @@ -312,26 +311,20 @@ 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)
> -			die("can't open root directory %s: %s\n",
> -			    sdp->path_name, strerror(errno));
> +			perror(sdp->path_name);
>  
>  		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);
>  		}
>  		sdp->device_fd = open(sdp->device_name,
>  				      (test ? O_RDONLY : O_RDWR) | O_CLOEXEC);
>  		if (sdp->device_fd < 0)
> -			die( _("can't open device %s: %s\n"),
> -			    sdp->device_name, strerror(errno));
> +			perror(sdp->device_name);
> +
>  		if (device_geometry(sdp)) {
> -			fprintf(stderr, _("Geometry error\n"));
> -			exit(-1);
> +			perror(_("Device geometry error"));
> +			exit(EXIT_FAILURE);
>  		}
>  		log_info( _("Initializing lists...\n"));
>  		sdp->rgtree.osi_node = NULL;
> @@ -340,8 +333,8 @@ main_grow(int argc, char *argv[])
>  		sdp->sd_sb.sb_bsize = GFS2_DEFAULT_BSIZE;
>  		sdp->bsize = sdp->sd_sb.sb_bsize;
>  		if (compute_constants(sdp)) {
> -			log_crit(_("Bad constants (1)\n"));
> -			exit(-1);
> +			perror(_("Bad constants (1)"));
> +			exit(EXIT_FAILURE);
>  		}
>  		if (read_sb(sdp, 0) < 0)
>  			die( _("gfs: Error reading superblock.\n"));
> @@ -349,13 +342,12 @@ main_grow(int argc, char *argv[])
>  		if (fix_device_geometry(sdp)) {
>  			fprintf(stderr, _("Device is too small (%llu bytes)\n"),
>  				(unsigned long long)sdp->device.length << GFS2_BASIC_BLOCK_SHIFT);
> -			exit(-1);
> +			exit(EXIT_FAILURE);
>  		}
>  
>  		if (mount_gfs2_meta(sdp)) {
> -			fprintf(stderr, _("Error mounting GFS2 metafs: %s\n"),
> -					strerror(errno));
> -			exit(-1);
> +			perror("GFS2 metafs");
> +			exit(EXIT_FAILURE);
>  		}
>  
>  		sprintf(rindex_name, "%s/rindex", sdp->metafs_path);
> diff --git a/gfs2/mkfs/main_mkfs.c b/gfs2/mkfs/main_mkfs.c
> index f35f5b0..771feba 100644
> --- a/gfs2/mkfs/main_mkfs.c
> +++ b/gfs2/mkfs/main_mkfs.c
> @@ -591,7 +591,7 @@ void main_mkfs(int argc, char *argv[])
>  	verify_bsize(sdp);
>  
>  	if (compute_constants(sdp)) {
> -		perror(_("Bad constants (1)\n"));
> +		perror(_("Bad constants (1)"));
>  		exit(EXIT_FAILURE);
>  	}
>  
> @@ -599,7 +599,7 @@ void main_mkfs(int argc, char *argv[])
>  
>  	device_size(sdp->device_fd, &real_device_size);
>  	if (device_geometry(sdp)) {
> -		perror(_("Device geometry error\n"));
> +		perror(_("Device geometry error"));
>  		exit(EXIT_FAILURE);
>  	}
>  	/* Convert optional block-count to basic blocks */





More information about the Cluster-devel mailing list