6 #include <asm/pgtable.h>
8 ssize_t
dax_do_io(struct kiocb
*, struct inode
*, struct iov_iter
*, loff_t
,
9 get_block_t
, dio_iodone_t
, int flags
);
10 int dax_clear_sectors(struct block_device
*bdev
, sector_t _sector
, long _size
);
11 int dax_zero_page_range(struct inode
*, loff_t from
, unsigned len
, get_block_t
);
12 int dax_truncate_page(struct inode
*, loff_t from
, get_block_t
);
13 int dax_fault(struct vm_area_struct
*, struct vm_fault
*, get_block_t
,
15 int __dax_fault(struct vm_area_struct
*, struct vm_fault
*, get_block_t
,
19 struct page
*read_dax_sector(struct block_device
*bdev
, sector_t n
);
21 static inline struct page
*read_dax_sector(struct block_device
*bdev
,
24 return ERR_PTR(-ENXIO
);
28 #ifdef CONFIG_TRANSPARENT_HUGEPAGE
29 int dax_pmd_fault(struct vm_area_struct
*, unsigned long addr
, pmd_t
*,
30 unsigned int flags
, get_block_t
, dax_iodone_t
);
31 int __dax_pmd_fault(struct vm_area_struct
*, unsigned long addr
, pmd_t
*,
32 unsigned int flags
, get_block_t
, dax_iodone_t
);
34 static inline int dax_pmd_fault(struct vm_area_struct
*vma
, unsigned long addr
,
35 pmd_t
*pmd
, unsigned int flags
, get_block_t gb
,
38 return VM_FAULT_FALLBACK
;
40 #define __dax_pmd_fault dax_pmd_fault
42 int dax_pfn_mkwrite(struct vm_area_struct
*, struct vm_fault
*);
43 #define dax_mkwrite(vma, vmf, gb, iod) dax_fault(vma, vmf, gb, iod)
44 #define __dax_mkwrite(vma, vmf, gb, iod) __dax_fault(vma, vmf, gb, iod)
46 static inline bool vma_is_dax(struct vm_area_struct
*vma
)
48 return vma
->vm_file
&& IS_DAX(vma
->vm_file
->f_mapping
->host
);
51 static inline bool dax_mapping(struct address_space
*mapping
)
53 return mapping
->host
&& IS_DAX(mapping
->host
);
56 struct writeback_control
;
57 int dax_writeback_mapping_range(struct address_space
*mapping
,
58 struct block_device
*bdev
, struct writeback_control
*wbc
);