• Christoph Hellwig's avatar
    xfs: go straight to real allocations for direct I/O COW writes · a14234c7
    Christoph Hellwig authored
    When we allocate COW fork blocks for direct I/O writes we currently first
    create a delayed allocation, and then convert it to a real allocation
    once we've got the delayed one.
    
    As there is no good reason for that this patch instead makes use call
    xfs_bmapi_write from the COW allocation path.  The only interesting bits
    are a few tweaks the low-level allocator to allow for this, most notably
    the need to remove the call to xfs_bmap_extsize_align for the cowextsize
    in xfs_bmap_btalloc - for the existing convert case it's a no-op, but
    for the direct allocation case it would blow up our block reservation
    way beyond what we reserved for the transaction.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    Signed-off-by: default avatarDarrick J. Wong <darrick.wong@oracle.com>
    a14234c7
xfs_bmap.c 185 KB