|
@@ -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 = {
|