Sorry, messed up the subject the first time. This patch set adds support for dax on the BTRFS filesystem. In order to support for CoW for btrfs, there were changes which had to be made to the dax handling. The important one is copying blocks into the same dax device before using them. I have some doubts: I have put them in patch headers of the individual patches. Git: https://github.com/goldwynr/linux/tree/btrfs-dax Changes since V1: - use iomap instead of redoing everything in btrfs - support for mmap writeprotecting on snapshotting fs/btrfs/Makefile | 1 fs/btrfs/ctree.h | 32 +++++- fs/btrfs/dax.c | 225 +++++++++++++++++++++++++++++++++++++++++-- fs/btrfs/disk-io.c | 4 fs/btrfs/file.c | 34 +++++- fs/btrfs/inode.c | 114 ++++++++++++++++----- fs/btrfs/ioctl.c | 31 +++++ fs/btrfs/send.c | 4 fs/btrfs/super.c | 26 ++++ fs/dax.c | 164 ++++++++++++++++++++++++++++--- fs/iomap.c | 9 - fs/ocfs2/file.c | 2 fs/read_write.c | 9 + fs/xfs/xfs_reflink.c | 2 include/linux/dax.h | 13 +- include/linux/fs.h | 4 include/linux/iomap.h | 9 + include/trace/events/btrfs.h | 56 ++++++++++ 18 files changed, 662 insertions(+), 77 deletions(-) -- Goldwyn