• C
    xfs: support for synchronous DAX faults · a39e596b
    Christoph Hellwig 提交于
    Return IOMAP_F_DIRTY from xfs_file_iomap_begin() when asked to prepare
    blocks for writing and the inode is pinned, and has dirty fields other
    than the timestamps.  In __xfs_filemap_fault() we then detect this case
    and call dax_finish_sync_fault() to make sure all metadata is committed,
    and to insert the page table entry.
    
    Note that this will also dirty corresponding radix tree entry which is
    what we want - fsync(2) will still provide data integrity guarantees for
    applications not using userspace flushing. And applications using
    userspace flushing can avoid calling fsync(2) and thus avoid the
    performance overhead.
    
    [JK: Added VM_SYNC flag handling]
    Reviewed-by: NRoss Zwisler <ross.zwisler@linux.intel.com>
    Signed-off-by: NChristoph Hellwig <hch@lst.de>
    Signed-off-by: NJan Kara <jack@suse.cz>
    Signed-off-by: NDan Williams <dan.j.williams@intel.com>
    a39e596b
xfs_file.c 30.2 KB