To support DAX pmd mappings with unmodified applications, filesystems need to align an mmap address by the pmd size.
Call dax_get_unmapped_area() from f_op->get_unmapped_area. Note, there is no change in behavior for a non-DAX file. Signed-off-by: Toshi Kani <[email protected]> Cc: Alexander Viro <[email protected]> Cc: Dan Williams <[email protected]> Cc: Matthew Wilcox <[email protected]> Cc: Ross Zwisler <[email protected]> --- fs/block_dev.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/block_dev.c b/fs/block_dev.c index 20a2c02..0274802 100644 --- a/fs/block_dev.c +++ b/fs/block_dev.c @@ -1798,6 +1798,9 @@ const struct file_operations def_blk_fops = { .write_iter = blkdev_write_iter, .mmap = blkdev_mmap, .fsync = blkdev_fsync, +#ifdef CONFIG_FS_DAX + .get_unmapped_area = dax_get_unmapped_area, +#endif .unlocked_ioctl = block_ioctl, #ifdef CONFIG_COMPAT .compat_ioctl = compat_blkdev_ioctl,

