Changes since v2 [1]: * Split fs_dax_get_by_bdev() to its own patch (Christoph) * Push dax_device reference management into <fs>_{fill,put}_super() rather than the generic vfs. (Christoph) [1]: https://lists.01.org/pipermail/linux-nvdimm/2017-August/012133.html --- Christoph notes: I just noticed that we now do a fs_dax_get_by_host in every iomap_begin call for DAX. This function iterates a list, does a string compared and igrab. I really think we need to cache this in the superblock (possible even the fs superblock) similar to what we do for the block device. This passes the libnvdimm unit tests. --- Dan Williams (4): dax: introduce a fs_dax_get_by_bdev() helper xfs: perform dax_device lookup at mount ext2: perform dax_device lookup at mount ext4: perform dax_device lookup at mount drivers/dax/super.c | 10 ++++++++++ fs/ext2/ext2.h | 1 + fs/ext2/inode.c | 11 +++-------- fs/ext2/super.c | 5 +++++ fs/ext4/ext4.h | 1 + fs/ext4/inode.c | 11 +++-------- fs/ext4/super.c | 5 +++++ fs/xfs/xfs_aops.c | 13 +++++++++++++ fs/xfs/xfs_aops.h | 1 + fs/xfs/xfs_buf.c | 4 +++- fs/xfs/xfs_buf.h | 3 ++- fs/xfs/xfs_iomap.c | 10 +--------- fs/xfs/xfs_super.c | 25 +++++++++++++++++++++---- include/linux/dax.h | 6 ++++++ 14 files changed, 75 insertions(+), 31 deletions(-)