• Christoph Hellwig's avatar
    xfs: set IOMAP_F_SHARED for all COW fork allocations · 7d6fe5c5
    Christoph Hellwig authored
    Change to always set xfs_buffered_write_iomap_begin for COW fork
    allocations even if they don't overlap existing data fork extents,
    which will allow the iomap_end callback to detect if it has to punch
    stale delalloc blocks from the COW fork instead of the data fork.  It
    also means we sample the sequence counter for both the data and the COW
    fork when writing to the COW fork, which ensures we properly revalidate
    when only COW fork changes happens.
    
    This is essentially a revert of commit 72a048c1 ("xfs: only set
    IOMAP_F_SHARED when providing a srcmap to a write"). This is fine because
    the problem that the commit fixed has now been dealt with in iomap by
    only looking at the actual srcmap and not the fallback to the write
    iomap.
    
    Note that the direct I/O path was never changed and has always set
    IOMAP_F_SHARED for all COW fork allocations.
    Signed-off-by: default avatarChristoph Hellwig <hch@lst.de>
    Reviewed-by: default avatarDarrick J. Wong <djwong@kernel.org>
    Signed-off-by: default avatarCarlos Maiolino <cem@kernel.org>
    7d6fe5c5
xfs_iomap.c 39.6 KB