• Christoph Hellwig's avatar
    xfs: stop the steal (of data blocks for RT indirect blocks) · bd1753d8
    Christoph Hellwig authored
    When xfs_bmap_del_extent_delay has to split an indirect block it tries
    to steal blocks from the the part that gets unmapped to increase the
    indirect block reservation that now needs to cover for two extents
    instead of one.
    
    This works perfectly fine on the data device, where the data and
    indirect blocks come from the same pool.  It has no chance of working
    when the inode sits on the RT device.  To support re-enabling delalloc
    for inodes on the RT device, make this behavior conditional on not
    being for rt extents.
    
    Note that split of delalloc extents should only happen on writeback
    failure, as for other kinds of hole punching we first write back all
    data and thus convert the delalloc reservations covering the hole to
    a real allocation.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDave Chinner <dchinner@redhat.com>
    Reviewed-by: default avatar"Darrick J. Wong" <djwong@kernel.org>
    Signed-off-by: default avatarChandan Babu R <chandanbabu@kernel.org>
    bd1753d8
xfs_bmap.c 170 KB