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