On 2/23/15 8:39 PM, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > This fails: > > # mkfs.xfs -f -l version=2,su=256k /dev/ram1 > log size 2560 blocks too small, minimum size is 3264 blocks > .... > > We should be automatically calculating an appropriate, valid log > size when the user does not specify it. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> > --- > mkfs/xfs_mkfs.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mkfs/xfs_mkfs.c b/mkfs/xfs_mkfs.c > index 66711cb..5e10c4e 100644 > --- a/mkfs/xfs_mkfs.c > +++ b/mkfs/xfs_mkfs.c > @@ -2441,9 +2441,11 @@ _("size %s specified for log subvolume is too large, maximum is %lld blocks\n"), > */ > logblocks = (dblocks << blocklog) / 2048; > logblocks = logblocks >> blocklog; > - logblocks = MAX(min_logblocks, logblocks); > } > > + /* Log size must exceed the minimum the geometry requires. */ ok, so 4G device with 4k sectors; 4k sectors + log sunit is what made the calculated min_logblocks large enough that it is failing without this change. Those details should probably be in the commit log. Also, nitpick, it doesn't have to exceed, and MAX() doesn't make it exceed.... maybe: /* Log size can't be less than the minimum the geometry requires. */ Code wise it's fine, I'd prefer to see commit log & comment tidied up, but: Reviewed-by: Eric Sandeen <sandeen@xxxxxxxxxx> > + logblocks = MAX(min_logblocks, logblocks); > + > /* make sure the log fits wholly within an AG */ > if (logblocks >= agsize) > logblocks = min_logblocks; > _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs