On Fri, Jun 22, 2018 at 11:51:44AM +0800, Huang, Ying wrote: > Because there is no way to prevent a huge swap cluster from being > split except when it has SWAP_HAS_CACHE flag set. What about making get_mctgt_type_thp take the cluster lock? That function would be the first lock_cluster user outside of swapfile.c, but it would serialize with split_swap_cluster. > It is possible for > the huge swap cluster to be split and the charge for the swap slots > inside to be changed, after we check the PMD swap mapping and the huge > swap cluster before we commit the charge moving. But the race window > is so small, that we will just ignore the race. Moving the charges is a slow path, so can't we just be correct here and not leak?