v2
2026-07-14
修复文件folio分裂后inode UAF · v2
在__folio_split()中分裂超过EOF的尾部folio时,通过folio_lock防止inode被释放,修复因racing iput()导致的UAF。
原始补丁链接
子 Patch(5)
1/5
mm/memory-failure: keep the folio, not the poisoned subpage, locked across split
[Re: [PATCH v2 1/5] mm/memory-failure: keep the folio, not the poisoned subpage, locked across split] On Tue, Jul 14, 2026 at 03:01:46PM +0200, David Hildenbrand (Arm) wrote: > On 7/14/26 14:23, Kiryl
2/5
mm/huge_memory: refuse to split a file folio when the anchor is beyond EOF
拒绝在 anchor 超过 EOF 时分割文件 folio,防止 split 过程中并发 iput() 释放 inode 导致 use-after-free。
3/5
mm/huge_memory: remove unused split_huge_page_to_order()
移除 split_huge_page_to_order(),其最后一个调用者已转换为 folio 原生 split_folio_to_order(),无功能变化。
4/5
mm/huge_memory: remove unused can_split_folio()
移除 can_split_folio() 的 !THP 空桩,该函数已无调用者且无 CONFIG_TRANSPARENT_HUGEPAGE 定义,清理遗留代码。
5/5
mm/huge_memory: fold split_folio_to_list_to_order() into split_folio_to_order()
将 split_folio_to_list_to_order() 内联到 split_folio_to_order(),因前者唯一调用者始终传递 NULL list,简化接口。