summaryrefslogtreecommitdiff
path: root/include/linux/dax.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2016-09-19 04:24:49 +0300
committerDave Chinner <david@fromorbit.com>2016-09-19 04:24:49 +0300
commita254e568128804fc2f18490af617197a1d36675e (patch)
tree1ac13b348313bc0b9407c19a13b7945b15a56c34 /include/linux/dax.h
parentb0d5e82fcf8249b5aca52d235c1cfabd68b253e8 (diff)
downloadlinux-a254e568128804fc2f18490af617197a1d36675e.tar.xz
dax: provide an iomap based dax read/write path
This is a much simpler implementation of the DAX read/write path that makes use of the iomap infrastructure. It does not try to mirror the direct I/O calling conventions and thus doesn't have to deal with i_dio_count or the end_io handler, but instead leaves locking and filesystem-specific I/O completion to the caller. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Ross Zwisler <ross.zwisler@linux.intel.com> Signed-off-by: Dave Chinner <david@fromorbit.com>
Diffstat (limited to 'include/linux/dax.h')
-rw-r--r--include/linux/dax.h4
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/dax.h b/include/linux/dax.h
index 9c6dc7704043..a0595b4ddbd8 100644
--- a/include/linux/dax.h
+++ b/include/linux/dax.h
@@ -6,9 +6,13 @@
#include <linux/radix-tree.h>
#include <asm/pgtable.h>
+struct iomap_ops;
+
/* We use lowest available exceptional entry bit for locking */
#define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT)
+ssize_t iomap_dax_rw(struct kiocb *iocb, struct iov_iter *iter,
+ struct iomap_ops *ops);
ssize_t dax_do_io(struct kiocb *, struct inode *, struct iov_iter *,
get_block_t, dio_iodone_t, int flags);
int dax_zero_page_range(struct inode *, loff_t from, unsigned len, get_block_t);