From: Lei Chen <lennychen@xxxxxxxxxxx> xfs_bmapi_write may need alloc blocks when it encounters a hole or delay extent. When setting bma.length, it does not need comparing MAXEXTLEN and the length that the caller wants, because xfs_bmapi_allocate will handle every thing properly for bma.length. Signed-off-by: Lei Chen <lennychen@xxxxxxxxxxx> --- fs/xfs/libxfs/xfs_bmap.c | 13 +------------ 1 file changed, 1 insertion(+), 12 deletions(-) diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index dcf56bc..e1b6ac6 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -4417,18 +4417,7 @@ struct xfs_iread_state { bma.wasdel = wasdelay; bma.offset = bno; bma.flags = flags; - - /* - * There's a 32/64 bit type mismatch between the - * allocation length request (which can be 64 bits in - * length) and the bma length request, which is - * xfs_extlen_t and therefore 32 bits. Hence we have to - * check for 32-bit overflows and handle them here. - */ - if (len > (xfs_filblks_t)MAXEXTLEN) - bma.length = MAXEXTLEN; - else - bma.length = len; + bma.length = len; ASSERT(len > 0); ASSERT(bma.length > 0); -- 1.8.3.1