xfs
[Top] [All Lists]

Re: [PATCH] mkfs.xfs: print std info if agcount makes agsize out of boun

To: Eric Sandeen <sandeen@xxxxxxxxxx>
Subject: Re: [PATCH] mkfs.xfs: print std info if agcount makes agsize out of bounds
From: Dave Chinner <david@xxxxxxxxxxxxx>
Date: Thu, 29 Mar 2012 12:24:04 +1100
Cc: xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <4F7375F7.5090305@xxxxxxxxxx>
References: <4F7375F7.5090305@xxxxxxxxxx>
User-agent: Mutt/1.5.21 (2010-09-15)
On Wed, Mar 28, 2012 at 03:35:03PM -0500, Eric Sandeen wrote:
> When specifying a too-small agcount with stripe geometry,
> mkfs.xfs can fail with a somewhat unexpected message:
> 
> $ mkfs.xfs -f -d file,name=fsfile,size=9764864000b,agcount=31,su=512k,sw=20
> Allocation group size (314995613) is not a multiple of the stripe unit (128)
> 
> This strikes me as especially odd because normally, mkfs.xfs
> tries to fix up the agsize to be a stripe multiple.  The only way
> we get to the above error message is if ag _size_ is out of bounds;
> exiting with an error about alignment rather than about size
> seems odd.
> 
> Maybe below is too clever, but if by the time we've decided that
> agsize is out of bounds after rounding it both up and down,
> as necessary, to get to a stripe-width multiple, calling
> validate_ag_geometry() will give us the same standard message as
> if we had specified no stripe geometry:
> 
> $ mkfs/mkfs.xfs -f -d 
> file,name=fsfile,size=9764864000b,agcount=31,su=512k,sw=20
> agsize (314995613b) too big, maximum is 268435455 blocks
> Usage: mkfs.xfs
> ...
> 
> $ mkfs/mkfs.xfs -f -d file,name=fsfile,size=9764864000b,agcount=31
> agsize (314995613b) too big, maximum is 268435455 blocks
> Usage: mkfs.xfs
> ...
> 
> Signed-off-by: Eric Sandeen <sandeen@xxxxxxxxxx>

Makes sense. Consider it:

Reviewed-by: Dave Chinner <dchinner@xxxxxxxxxx>

As an aside, do you want to touch that error message:

agsize (314995613b) too big, maximum is 268435455 blocks

so that it uses the same notation for blocks for both numbers. i.e.
something like:

agsize (314995613 blocks) too big, maximum is 268435455 blocks

Cheers,

Dave.
-- 
Dave Chinner
david@xxxxxxxxxxxxx

<Prev in Thread] Current Thread [Next in Thread>