diff options
author | Christoph Hellwig <hch@lst.de> | 2016-09-19 11:24:49 +1000 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-09-19 11:24:49 +1000 |
commit | a254e568128804fc2f18490af617197a1d36675e (patch) | |
tree | 1ac13b348313bc0b9407c19a13b7945b15a56c34 /include/linux/dax.h | |
parent | b0d5e82fcf8249b5aca52d235c1cfabd68b253e8 (diff) | |
download | lwn-a254e568128804fc2f18490af617197a1d36675e.tar.gz lwn-a254e568128804fc2f18490af617197a1d36675e.zip |
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.h | 4 |
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); |