[PATCH v2 00/11] hugetlb: Use PAGE granularity index in exported i/f and adopt the common read_iter

From: Jane Chu

Date: Wed Jun 17 2026 - 13:26:43 EST


changes in v2:
- new patches 1-4: add hwpoison handling to filemap_read(),
thus replace hugetlbfs_read_iter() with generic_file_read_iter(),
suggested by Matthew [2];
- new patch 5: convert hugetlb fault handler's vmf->pgoff to PAGE_SIZE
granularity like the rest of mm fault handling convention, suggested
by Matthew [2];
- patch 6: fixed a bug in v1 pointed out by Usama Arif, also by syzbot;
- patch 8: did not pick the Acked-by from Oscar (for 5/6 in v1) due to
updates to the patch;
- patch 11: add VM_WARN_ON in hugetlb_unreserve_pages(), per Oscar;

v1:
This series stems from a discussion with David. [1]
The series makes a small cleanup to a few hugetlb interfaces used
outside the subsystem by standardizing them on base-page indices.
Hopefully this makes the interface semantics a bit more coherent with
the rest of mm, while the internal hugetlb code continue to use hugepage
indices where that remains the more natural fit.

[1] https://lore.kernel.org/linux-mm/9ec9edd1-0f4c-4da2-ae78-0e7b251a9e25@xxxxxxxxxx/
[2] https://lore.kernel.org/linux-mm/aeZwAz6PcdlqSnJ2@xxxxxxxxxxxxxxxxxxxx/


Jane Chu (11):
mm/memory-failure: make is_raw_hwpoison_page_in_hugepage() general
purpose
mm: factor out adjust_range_hwpoison() from hugetlbfs
mm/filemap: add hwpoison handling to filemap_read()
hugetlbfs,filemap: replace hugetlbfs_read_iter() with
generic_file_read_iter()
hugetlb: Convert the vmf->pgoff to PAGE_SIZE granularity
hugetlb: make hugetlb_fault_mutex_hash() to take PAGE_SIZE index
hugetlb: replace filemap_lock_hugetlb_folio with filemap_lock_folio
hugetlb: make hugetlb_add_to_page_cache() to take PAGE_SIZE
granularity index
hugetlb: remove the hugetlb_linear_page_index() helper
hugetlb: drop vma_hugecache_offset() in favor of linear_page_index()
hugetlb: make hugetlb_[un]reserve_pages() to take PAGE granularity
index

Documentation/mm/hugetlbfs_reserv.rst | 19 ++--
fs/hugetlbfs/inode.c | 155 ++++----------------------
include/linux/fs.h | 2 +
include/linux/hugetlb.h | 36 +-----
mm/filemap.c | 62 ++++++++++-
mm/hugetlb.c | 87 ++++++++-------
mm/memfd.c | 25 ++---
mm/memory-failure.c | 12 +-
mm/userfaultfd.c | 6 +-
9 files changed, 164 insertions(+), 240 deletions(-)

--
2.43.5