[PATCH 2/2] xfsprogs: don't warn about log sunit size if it was auto-discovered
Brian Foster
bfoster at redhat.com
Wed Oct 29 13:38:42 CDT 2014
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 at redhat.com>
> ---
>
> 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 at oss.sgi.com
> http://oss.sgi.com/mailman/listinfo/xfs
More information about the xfs
mailing list