• Dave Chinner's avatar
    xfs: use byte ranges for write cleanup ranges · b71f889c
    Dave Chinner authored
    xfs_buffered_write_iomap_end() currently converts the byte ranges
    passed to it to filesystem blocks to pass them to the bmap code to
    punch out delalloc blocks, but then has to convert filesytem
    blocks back to byte ranges for page cache truncate.
    
    We're about to make the page cache truncate go away and replace it
    with a page cache walk, so having to convert everything to/from/to
    filesystem blocks is messy and error-prone. It is much easier to
    pass around byte ranges and convert to page indexes and/or
    filesystem blocks only where those units are needed.
    
    In preparation for the page cache walk being added, add a helper
    that converts byte ranges to filesystem blocks and calls
    xfs_bmap_punch_delalloc_range() and convert
    xfs_buffered_write_iomap_end() to calculate limits in byte ranges.
    Signed-off-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    b71f889c
xfs_iomap.c 37.9 KB