xfs
[Top] [All Lists]

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

To: Dave Chinner <david@xxxxxxxxxxxxx>
Subject: Re: [PATCH] mkfs.xfs: print std info if agcount makes agsize out of bounds
From: Eric Sandeen <sandeen@xxxxxxxxxx>
Date: Wed, 28 Mar 2012 20:53:54 -0500
Cc: xfs-oss <xfs@xxxxxxxxxxx>
In-reply-to: <20120329012404.GL5091@dastard>
References: <4F7375F7.5090305@xxxxxxxxxx> <20120329012404.GL5091@dastard>
User-agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10.6; rv:11.0) Gecko/20120313 Thunderbird/11.0
On 3/28/12 8:24 PM, Dave Chinner wrote:
> 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

Good idea, will do.

-Eric

> Cheers,
> 
> Dave.

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