ext4: use ext4_get_block_write() for DAX
[cascardo/linux.git] / fs / ext4 / file.c
index 953d519..ca5302a 100644 (file)
@@ -196,7 +196,7 @@ out:
 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)
@@ -207,8 +207,7 @@ static void ext4_end_io_unwritten(struct buffer_head *bh, int 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,
@@ -220,7 +219,8 @@ 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 = {