diff options
author | Christoph Hellwig <hch@lst.de> | 2016-09-19 11:24:50 +1000 |
---|---|---|
committer | Dave Chinner <david@fromorbit.com> | 2016-09-19 11:24:50 +1000 |
commit | a7d73fe6c538fdba42635c0b8e73382fcd4bd667 (patch) | |
tree | 52d21238ff5a36c74ecaf2401bbe91311afae37f /include/linux | |
parent | a254e568128804fc2f18490af617197a1d36675e (diff) | |
download | op-kernel-dev-a7d73fe6c538fdba42635c0b8e73382fcd4bd667.zip op-kernel-dev-a7d73fe6c538fdba42635c0b8e73382fcd4bd667.tar.gz |
dax: provide an iomap based fault handler
Very similar to the existing dax_fault function, but instead of using
the get_block callback we rely on the iomap_ops vector from iomap.c.
That also avoids having to do two calls into the file system for write
faults.
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')
-rw-r--r-- | include/linux/dax.h | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/include/linux/dax.h b/include/linux/dax.h index a0595b4..add6c4b 100644 --- a/include/linux/dax.h +++ b/include/linux/dax.h @@ -17,6 +17,8 @@ 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); int dax_truncate_page(struct inode *, loff_t from, get_block_t); +int iomap_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf, + struct iomap_ops *ops); int dax_fault(struct vm_area_struct *, struct vm_fault *, get_block_t); int dax_delete_mapping_entry(struct address_space *mapping, pgoff_t index); void dax_wake_mapping_entry_waiter(struct address_space *mapping, |