• Christoph Hellwig's avatar
    xfs: make COW fork unwritten extent conversions more robust · 26b91c72
    Christoph Hellwig authored
    If we have racing buffered and direct I/O COW fork extents under
    writeback can have been moved to the data fork by the time we call
    xfs_reflink_convert_cow from xfs_submit_ioend.  This would be mostly
    harmless as the block numbers don't change by this move, except for
    the fact that xfs_bmapi_write will crash or trigger asserts when
    not finding existing extents, even despite trying to paper over this
    with the XFS_BMAPI_CONVERT_ONLY flag.
    
    Instead of special casing non-transaction conversions in the already
    way too complicated xfs_bmapi_write just add a new helper for the much
    simpler non-transactional COW fork case, which simplify ignores not
    found extents.
    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>
    26b91c72
xfs_bmap.h 9.42 KB