• Dave Chinner's avatar
    xfs: align initial file allocations correctly · f9b395a8
    Dave Chinner authored
    The function xfs_bmap_isaeof() is used to indicate that an
    allocation is occurring at or past the end of file, and as such
    should be aligned to the underlying storage geometry if possible.
    Commit 27a3f8f2 ("xfs: introduce xfs_bmap_last_extent") changed the
    behaviour of this function for empty files - it turned off
    allocation alignment for this case accidentally. Hence large initial
    allocations from direct IO are not getting correctly aligned to the
    underlying geometry, and that is cause write performance to drop in
    alignment sensitive configurations.
    Fix it by considering allocation into empty files as requiring
    aligned allocation again.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarChristoph Hellwig <hch@lst.de>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>
xfs_bmap.c 154 KB