Re: [PATCH] mkfs: log stripe unit fails to influence default log size

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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




[Index of Archives]     [Linux XFS Devel]     [Linux Filesystem Development]     [Filesystem Testing]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux