static void ext4_end_io_unwritten(struct buffer_head *bh, int uptodate)
 {
        struct inode *inode = bh->b_assoc_map->host;
-       /* XXX: breaks on 32-bit > 16GB. Is that even supported? */
+       /* XXX: breaks on 32-bit > 16TB. Is that even supported? */
        loff_t offset = (loff_t)(uintptr_t)bh->b_private << inode->i_blkbits;
        int err;
        if (!uptodate)
 
 static int ext4_dax_fault(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
-       return dax_fault(vma, vmf, ext4_get_block, ext4_end_io_unwritten);
-                                       /* Is this the right get_block? */
+       return dax_fault(vma, vmf, ext4_get_block_write, ext4_end_io_unwritten);
 }
 
 static int ext4_dax_pmd_fault(struct vm_area_struct *vma, unsigned long addr,
 
 static int ext4_dax_mkwrite(struct vm_area_struct *vma, struct vm_fault *vmf)
 {
-       return dax_mkwrite(vma, vmf, ext4_get_block, ext4_end_io_unwritten);
+       return dax_mkwrite(vma, vmf, ext4_get_block_write,
+                               ext4_end_io_unwritten);
 }
 
 static const struct vm_operations_struct ext4_dax_vm_ops = {