Previously called btrfs iomap. This is an effort to use iomap for btrfs. This would keep most responsibility of page handling during writes in iomap code, hence code reduction. For CoW support, changes are needed in iomap code to make sure we perform a copy before the write. This is in line with the discussion we had during adding dax support in btrfs. I din't mean to change the series topic, but I am expanding into XFS. However, I have not thoroughly tested XFS changes yet. I am sending this for the deadline set by Darrick. This patchset is based on DIO changes sent by Christoph, based on patches by Matthew Bobrowski. [1] https://github.com/goldwynr/linux/tree/btrfs-iomap -- Goldwyn Changes since v1 - Added Direct I/O support - Remove PagePrivate from btrfs pages for regular files Changes since v2 - Added CONFIG_FS_IOMAP_DEBUG and some checks - Fallback to buffered read in case of short direct reads Changes since v3 - Review comments incorporated - Added support for XFS