shmem_get_unmapped_area() provides a functionality similar
to __thp_get_unmapped_area() as both allocate a pmd-aligned
address. This patchset changes shmem_get_unmapped_area()
to call __thp_get_unmapped_area() to share the code.
Patch 1 fixes a bug in shmem_get_unmapped_area() first.
Patch 2 changes shmem_get_unmapped_area() to call
__thp_get_unmapped_area() for sharing the code.
This patch-set applies on top of my patchset below.
Toshi Kani (2):
1/2 shmem: fix tmpfs to handle the huge= option properly
2/2 shmem: call __thp_get_unmapped_area to alloc a pmd-aligned addr
include/linux/huge_mm.h | 10 +++++++
mm/shmem.c | 70 ++++++++++---------------------------------------
2 files changed, 24 insertions(+), 56 deletions(-)
DAX PMDs have been disabled since Jan Kara introduced DAX radix tree based
locking. This series allows DAX PMDs to participate in the DAX radix tree
based locking scheme so that they can be re-enabled.
Changes since v1:
- PMD entry locking is now done based on the starting offset of the PMD
entry, rather than on the radix tree slot which was unreliable. (Jan)
- Fixed the one issue I could find with hole punch. As far as I can tell
hole punch now works correctly for both PMD and PTE DAX entries, 4k zero
pages and huge zero pages.
- Fixed the way that ext2 returns the size of holes in ext2_get_block().
- Made the 'wait_table' global variable static in respnse to a sparse
- Fixed some more inconsitent usage between the names 'ret' and 'entry'
for radix tree entry variables.
Ross Zwisler (9):
ext4: allow DAX writeback for hole punch
ext2: tell DAX the size of allocation holes
ext4: tell DAX the size of allocation holes
dax: remove buffer_size_valid()
dax: make 'wait_table' global variable static
dax: consistent variable naming for DAX entries
dax: coordinate locking for offsets in PMD range
dax: re-enable DAX PMD support
dax: remove "depends on BROKEN" from FS_DAX_PMD
fs/Kconfig | 1 -
fs/dax.c | 297 +++++++++++++++++++++++++++++-----------------------
fs/ext2/inode.c | 3 +
fs/ext4/inode.c | 7 +-
include/linux/dax.h | 29 ++++-
mm/filemap.c | 6 +-
6 files changed, 201 insertions(+), 142 deletions(-)