This patch series aims to fix some bugs and add some improvements. Changelog since v5 -> v6: - Simplify patch #3 and update commit changelog. Changelog since v4 -> v5: - Squash "mm: hugetlb: retry dissolve page when hitting race" to "mm: hugetlb: fix a race between freeing and dissolving the page" Changelog since v3 -> v4: - Update commit log of patch #1. - Drop "mm: hugetlb: add return -EAGAIN for dissolve_free_huge_page" - Add "mm: hugetlb: retry dissolve page when hitting race" Changelog since v2 -> v3: - Update commit log. - Using head[3].private to indicate the page is freed in patch #3. Changelog since v1 -> v2: - Export set_page_huge_active() in patch #2 to fix. - Using head[3].mapping to indicate the page is freed in patch #3. - Flush @free_hpage_work in patch #4. Muchun Song (5): mm: migrate: do not migrate HugeTLB page whose refcount is one mm: hugetlbfs: fix cannot migrate the fallocated HugeTLB page mm: hugetlb: fix a race between freeing and dissolving the page mm: hugetlb: fix a race between isolating and freeing page mm: hugetlb: remove VM_BUG_ON_PAGE from page_huge_active fs/hugetlbfs/inode.c | 3 ++- include/linux/hugetlb.h | 2 ++ mm/hugetlb.c | 48 +++++++++++++++++++++++++++++++++++++++++++----- mm/migrate.c | 6 ++++++ 4 files changed, 53 insertions(+), 6 deletions(-) -- 2.11.0