Re: [PATCH 2/2] xfsprogs: don't warn about log sunit size if it was auto-discovered

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, Oct 28, 2014 at 12:38:05PM -0500, Eric Sandeen wrote:
> Today, users doing a bare mkfs on storage with a large default
> stripe size may be surprised to get this warning:
> 
>  log stripe unit (%d bytes) is too large (maximum is 256KiB
>  log stripe unit adjusted to 32KiB
> 
> through no fault of their own.  The fallback is appropriate
> and harmless, and there's no need to warn about this in the
> defaults case.
> 
> However, we keep the warning if a large log stripe unit was
> specified by the user on the commandline.
> 
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>
> ---
> 
> diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c
> index a0fed31..66711cb 100644
> --- a/mkfs/xfs_mkfs.c
> +++ b/mkfs/xfs_mkfs.c
> @@ -946,6 +946,8 @@ main(
>  	int			logversion;
>  	int			lvflag;
>  	int			lsflag;
> +	int			lsuflag;
> +	int			lsunitflag;
>  	int			lsectorlog;
>  	int			lsectorsize;
>  	int			lslflag;
> @@ -1004,7 +1006,7 @@ main(
>  	sectorsize = lsectorsize = XFS_MIN_SECTORSIZE;
>  	agsize = daflag = dasize = dblocks = 0;
>  	ilflag = imflag = ipflag = isflag = 0;
> -	liflag = laflag = lsflag = ldflag = lvflag = 0;
> +	liflag = laflag = lsflag = lsuflag = lsunitflag = ldflag = lvflag = 0;
>  	loginternal = 1;
>  	logversion = 2;
>  	logagno = logblocks = rtblocks = rtextblocks = 0;
> @@ -1400,6 +1402,7 @@ main(
>  						respec('l', lopts, L_SU);
>  					lsu = cvtnum(
>  						blocksize, sectorsize, value);
> +					lsuflag = 1;
>  					break;
>  				case L_SUNIT:
>  					if (!value || *value == '\0')
> @@ -1412,6 +1415,7 @@ main(
>  						usage();
>  					}
>  					lsunit = cvtnum(0, 0, value);
> +					lsunitflag = 1;
>  					break;
>  				case L_NAME:
>  				case L_DEV:
> @@ -2379,11 +2383,15 @@ an AG size that is one stripe unit smaller, for example %llu.\n"),
>  	}
>  
>  	if (logversion == 2 && (lsunit * blocksize) > 256 * 1024) {
> -		fprintf(stderr,
> +		/* Warn only if specified on commandline */
> +		if (lsuflag || lsunitflag) {
> +			fprintf(stderr,
>  	_("log stripe unit (%d bytes) is too large (maximum is 256KiB)\n"),
> -			(lsunit * blocksize));
> +				(lsunit * blocksize));
> +			fprintf(stderr,
> +	_("log stripe unit adjusted to 32KiB\n"));
> +		}

Right above this particular hunk we have the possibility of lsunit
inheriting a value from dsunit. If the latter is specified by the user,
we don't print the message for an arguably user-specified lsunit. Hmm,
do we care about that case?

Brian

>  		lsunit = (32 * 1024) >> blocklog;
> -		fprintf(stderr, _("log stripe unit adjusted to 32KiB\n"));
>  	}
>  
>  	min_logblocks = max_trans_res(crcs_enabled, dirversion,
> 
> _______________________________________________
> xfs mailing list
> xfs@xxxxxxxxxxx
> http://oss.sgi.com/mailman/listinfo/xfs

_______________________________________________
xfs mailing list
xfs@xxxxxxxxxxx
http://oss.sgi.com/mailman/listinfo/xfs




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux