[0/6] Btrfs iomap
mbox series

Message ID 20190621192828.28900-1-rgoldwyn@suse.de
Headers show
Series
  • Btrfs iomap
Related show

Message

Goldwyn Rodrigues June 21, 2019, 7:28 p.m. UTC
This is an effort to use iomap with 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.

Efforts on adding dax support have been put on hold until MM experts can
come with a way of performing multiple mappings to a single page
(primarily the TODO before dax_associate_entry()). While we are waiting
on that we could add support for buffered writes in btrfs.

I have managed to add Direct I/O with iomap support as well, but it
still needs to be refined with respect to locking. If you are
interested in that effort (on top of this one), it is available
at [1].

[1] https://github.com/goldwynr/linux/tree/btrfs-iomap


 fs/btrfs/Makefile     |    2 
 fs/btrfs/ctree.h      |    1 
 fs/btrfs/file.c       |  468 --------------------------------------------------
 fs/btrfs/iomap.c      |  430 +++++++++++++++++++++++++++++++++++++++++++++
 fs/dax.c              |    8 
 fs/ext2/inode.c       |    2 
 fs/ext4/inode.c       |    2 
 fs/gfs2/bmap.c        |    3 
 fs/internal.h         |    2 
 fs/iomap.c            |   45 ++--
 fs/xfs/xfs_iomap.c    |    9 
 include/linux/iomap.h |    7 
 12 files changed, 479 insertions(+), 500 deletions(-)