|
|
Subscribe / Log in / New account

btrfs dax support

From:  Goldwyn Rodrigues <rgoldwyn-AT-suse.de>
To:  linux-btrfs-AT-vger.kernel.org
Subject:  [PATCH v4 00/18] btrfs dax support
Date:  Mon, 29 Apr 2019 12:26:31 -0500
Message-ID:  <20190429172649.8288-1-rgoldwyn@suse.de>
Cc:  kilobyte-AT-angband.pl, linux-fsdevel-AT-vger.kernel.org, jack-AT-suse.cz, david-AT-fromorbit.com, willy-AT-infradead.org, hch-AT-lst.de, darrick.wong-AT-oracle.com, dsterba-AT-suse.cz, nborisov-AT-suse.com, linux-nvdimm-AT-lists.01.org
Archive-link:  Article

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 which is performed by iomap
type IOMAP_DAX_COW.

Snapshotting and CoW features are supported (including mmap preservation
across snapshots).

Git: https://github.com/goldwynr/linux/tree/btrfs-dax

Changes since v3:
 - Fixed memcpy bug
 - used flags for dax_insert_entry instead of bools for dax_insert_entry()

Changes since v2:
 - Created a new type IOMAP_DAX_COW as opposed to flag IOMAP_F_COW
 - CoW source address is presented in iomap.inline_data
 - Split the patches to more elaborate dax/iomap patches

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             |   38 +++++
 fs/btrfs/dax.c               |  289 +++++++++++++++++++++++++++++++++++++++++--
 fs/btrfs/disk-io.c           |    4 
 fs/btrfs/file.c              |   37 ++++-
 fs/btrfs/inode.c             |  114 ++++++++++++----
 fs/btrfs/ioctl.c             |   29 +++-
 fs/btrfs/send.c              |    4 
 fs/btrfs/super.c             |   30 ++++
 fs/dax.c                     |  183 ++++++++++++++++++++++++---
 fs/iomap.c                   |    9 -
 fs/ocfs2/file.c              |    2 
 fs/read_write.c              |   11 -
 fs/xfs/xfs_reflink.c         |    2 
 include/linux/dax.h          |   15 +-
 include/linux/fs.h           |    8 +
 include/linux/iomap.h        |    7 +
 include/trace/events/btrfs.h |   56 ++++++++
 18 files changed, 752 insertions(+), 87 deletions(-)




Copyright © 2019, Eklektix, Inc.
Comments and public postings are copyrighted by their creators.
Linux is a registered trademark of Linus Torvalds