6 #include <linux/radix-tree.h>
7 #include <asm/pgtable.h>
9 /* We use lowest available exceptional entry bit for locking */
10 #define RADIX_DAX_ENTRY_LOCK (1 << RADIX_TREE_EXCEPTIONAL_SHIFT)
12 ssize_t
dax_do_io(struct kiocb
*, struct inode
*, struct iov_iter
*, loff_t
,
13 get_block_t
, dio_iodone_t
, int flags
);
14 int dax_zero_page_range(struct inode
*, loff_t from
, unsigned len
, get_block_t
);
15 int dax_truncate_page(struct inode
*, loff_t from
, get_block_t
);
16 int dax_fault(struct vm_area_struct
*, struct vm_fault
*, get_block_t
);
17 int __dax_fault(struct vm_area_struct
*, struct vm_fault
*, get_block_t
);
20 struct page
*read_dax_sector(struct block_device
*bdev
, sector_t n
);
21 int __dax_zero_page_range(struct block_device
*bdev
, sector_t sector
,
22 unsigned int offset
, unsigned int length
);
24 static inline struct page
*read_dax_sector(struct block_device
*bdev
,
27 return ERR_PTR(-ENXIO
);
29 static inline int __dax_zero_page_range(struct block_device
*bdev
,
30 sector_t sector
, unsigned int offset
, unsigned int length
)
36 #if defined(CONFIG_TRANSPARENT_HUGEPAGE)
37 int dax_pmd_fault(struct vm_area_struct
*, unsigned long addr
, pmd_t
*,
38 unsigned int flags
, get_block_t
);
39 int __dax_pmd_fault(struct vm_area_struct
*, unsigned long addr
, pmd_t
*,
40 unsigned int flags
, get_block_t
);
42 static inline int dax_pmd_fault(struct vm_area_struct
*vma
, unsigned long addr
,
43 pmd_t
*pmd
, unsigned int flags
, get_block_t gb
)
45 return VM_FAULT_FALLBACK
;
47 #define __dax_pmd_fault dax_pmd_fault
49 int dax_pfn_mkwrite(struct vm_area_struct
*, struct vm_fault
*);
50 #define dax_mkwrite(vma, vmf, gb) dax_fault(vma, vmf, gb)
51 #define __dax_mkwrite(vma, vmf, gb) __dax_fault(vma, vmf, gb)
53 static inline bool vma_is_dax(struct vm_area_struct
*vma
)
55 return vma
->vm_file
&& IS_DAX(vma
->vm_file
->f_mapping
->host
);
58 static inline bool dax_mapping(struct address_space
*mapping
)
60 return mapping
->host
&& IS_DAX(mapping
->host
);
63 struct writeback_control
;
64 int dax_writeback_mapping_range(struct address_space
*mapping
,
65 struct block_device
*bdev
, struct writeback_control
*wbc
);
This page took 0.034517 seconds and 5 git commands to generate.