• Mike Kravetz's avatar
    hugetlb: really allocate vma lock for all sharable vmas · e700898f
    Mike Kravetz authored
    Commit bbff39cc ("hugetlb: allocate vma lock for all sharable vmas")
    removed the pmd sharable checks in the vma lock helper routines.  However,
    it left the functional version of helper routines behind #ifdef
    CONFIG_ARCH_WANT_HUGE_PMD_SHARE.  Therefore, the vma lock is not being
    used for sharable vmas on architectures that do not support pmd sharing. 
    On these architectures, a potential fault/truncation race is exposed that
    could leave pages in a hugetlb file past i_size until the file is removed.
    
    Move the functional vma lock helpers outside the ifdef, and remove the
    non-functional stubs.  Since the vma lock is not just for pmd sharing,
    rename the routine __vma_shareable_flags_pmd.
    
    Link: https://lkml.kernel.org/r/20221212235042.178355-1-mike.kravetz@oracle.com
    Fixes: bbff39cc ("hugetlb: allocate vma lock for all sharable vmas")
    Signed-off-by: default avatarMike Kravetz <mike.kravetz@oracle.com>
    Reviewed-by: default avatarMiaohe Lin <linmiaohe@huawei.com>
    Cc: "Aneesh Kumar K.V" <aneesh.kumar@linux.vnet.ibm.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: James Houghton <jthoughton@google.com>
    Cc: Mina Almasry <almasrymina@google.com>
    Cc: Muchun Song <songmuchun@bytedance.com>
    Cc: Naoya Horiguchi <naoya.horiguchi@linux.dev>
    Cc: Peter Xu <peterx@redhat.com>
    Cc: <stable@vger.kernel.org>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    e700898f
hugetlb.c 207 KB