• Dave Chinner's avatar
    xfs: don't assert on delalloc regions beyond EOF · 58e20770
    Dave Chinner authored
    When we are doing speculative delayed allocation beyond EOF,
    conversion of the region allocated beyond EOF is dependent on the
    largest free space extent available. If the largest free extent is
    smaller than the delalloc range, then after allocation we leave
    a delalloc extent that starts beyond EOF. This extent cannot *ever*
    be converted by flushing data, and so will remain there until either
    the EOF moves into the extent or it is truncated away.
    Hence if xfs_getbmap() runs on such an inode and is asked to return
    extents beyond EOF, it will assert fail on this extent even though
    there is nothing xfs_getbmap() can do to convert it to a real
    extent. Hence we should simply report these delalloc extents rather
    than assert that there should be none.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Signed-off-by: default avatarBen Myers <bpm@sgi.com>