A series of huge tmpfs fixes and cleanups, suitable for 5.15, taken from the earlier 16 "tmpfs: HUGEPAGE and MEM_LOCK fcntls and flags": https://lore.kernel.org/linux-mm/2862852d-badd-7486-3a8e-c5ea9666d6fb@xxxxxxxxxx/ The API additions in that series have not yet been fully agreed, let's revisit those after the 5.15 merge window, but please proceed now with the uncontroversial preliminaries - thanks. Still diffed against 5.14-rc3: no conflict yet with 5.14-rc6 or linux-next or mmotm - no problems with the foliage. Most exactly as in the 16, with a few commit comments clarified from review; most already Reviewed-by Yang Shi (many thanks!), tags added. Exceptions: 6/9 SGP_NOALLOC introduced to resolve our review doubts, that and 7/9 not yet tagged, 9/9 now added from a posting last year: Kirill's "What breaks?" if shmem_enabled "always" reminds me that I'm still carrying the i915 THP fix, as corrected by Matthew. 1/9 huge tmpfs: fix fallocate(vanilla) advance over huge pages 2/9 huge tmpfs: fix split_huge_page() after FALLOC_FL_KEEP_SIZE 3/9 huge tmpfs: remove shrinklist addition from shmem_setattr() 4/9 huge tmpfs: revert shmem's use of transhuge_vma_enabled() 5/9 huge tmpfs: move shmem_huge_enabled() upwards 6/9 huge tmpfs: SGP_NOALLOC to stop collapse_file() on race 7/9 huge tmpfs: shmem_is_huge(vma, inode, index) 8/9 huge tmpfs: decide stat.st_blksize by shmem_is_huge() 9/9 shmem: shmem_writepage() split unlikely i915 THP include/linux/shmem_fs.h | 23 +++- mm/huge_memory.c | 6 - mm/khugepaged.c | 2 mm/shmem.c | 229 ++++++++++++++++++----------------------- 4 files changed, 129 insertions(+), 131 deletions(-) Hugh