On Thu, Dec 01, 2011 at 10:24:20PM +1100, Dave Chinner wrote: > From: Dave Chinner <dchinner@xxxxxxxxxx> > > When testing the new xfstests --large-fs option that does very large > file preallocations, this assert was tripped deep in > xfs_alloc_vextent(): > > XFS: Assertion failed: args->minlen <= args->maxlen, file: fs/xfs/xfs_alloc.c, line: 2239 > > The allocation was trying to allocate a zero length extent because > the lower 32 bits of the allocation length was zero. The remaining > length of the allocation to be done was an exact multiple of 2^32 - > the first case I saw was at 496TB remaining to be allocated. > > This turns out to be an overflow when converting the allocation > length (a 64 bit quantity) into the extent length to allocate (a 32 > bit quantity), and it requires the length to be allocated an exact > multiple of 2^32 blocks to trip the assert. > > Fix it by limiting the extent lenth to allocate to MAXEXTLEN. > > Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx> Looks good to me. Reviewed-by: Ben Myers <bpm@xxxxxxx> _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs