diff options
| -rw-r--r-- | fs/dax.c | 13 |
1 files changed, 2 insertions, 11 deletions
| @@ -1120,21 +1120,12 @@ static vm_fault_t dax_load_hole(struct address_space *mapping, void *entry, | |||
| 1120 | { | 1120 | { |
| 1121 | struct inode *inode = mapping->host; | 1121 | struct inode *inode = mapping->host; |
| 1122 | unsigned long vaddr = vmf->address; | 1122 | unsigned long vaddr = vmf->address; |
| 1123 | vm_fault_t ret = VM_FAULT_NOPAGE; | 1123 | pfn_t pfn = pfn_to_pfn_t(my_zero_pfn(vaddr)); |
| 1124 | struct page *zero_page; | 1124 | vm_fault_t ret; |
| 1125 | pfn_t pfn; | ||
| 1126 | |||
| 1127 | zero_page = ZERO_PAGE(0); | ||
| 1128 | if (unlikely(!zero_page)) { | ||
| 1129 | ret = VM_FAULT_OOM; | ||
| 1130 | goto out; | ||
| 1131 | } | ||
| 1132 | 1125 | ||
| 1133 | pfn = page_to_pfn_t(zero_page); | ||
| 1134 | dax_insert_mapping_entry(mapping, vmf, entry, pfn, RADIX_DAX_ZERO_PAGE, | 1126 | dax_insert_mapping_entry(mapping, vmf, entry, pfn, RADIX_DAX_ZERO_PAGE, |
| 1135 | false); | 1127 | false); |
| 1136 | ret = vmf_insert_mixed(vmf->vma, vaddr, pfn); | 1128 | ret = vmf_insert_mixed(vmf->vma, vaddr, pfn); |
| 1137 | out: | ||
| 1138 | trace_dax_load_hole(inode, vmf, ret); | 1129 | trace_dax_load_hole(inode, vmf, ret); |
| 1139 | return ret; | 1130 | return ret; |
| 1140 | } | 1131 | } |
