• Peter Xu's avatar
    mm/shmem: persist uffd-wp bit across zapping for file-backed · 999dad82
    Peter Xu authored
    File-backed memory is prone to being unmapped at any time.  It means all
    information in the pte will be dropped, including the uffd-wp flag.
    
    To persist the uffd-wp flag, we'll use the pte markers.  This patch
    teaches the zap code to understand uffd-wp and know when to keep or drop
    the uffd-wp bit.
    
    Add a new flag ZAP_FLAG_DROP_MARKER and set it in zap_details when we
    don't want to persist such an information, for example, when destroying
    the whole vma, or punching a hole in a shmem file.  For the rest cases we
    should never drop the uffd-wp bit, or the wr-protect information will get
    lost.
    
    The new ZAP_FLAG_DROP_MARKER needs to be put into mm.h rather than
    memory.c because it'll be further referenced in hugetlb files later.
    
    Link: https://lkml.kernel.org/r/20220405014847.14295-1-peterx@redhat.comSigned-off-by: default avatarPeter Xu <peterx@redhat.com>
    Cc: Alistair Popple <apopple@nvidia.com>
    Cc: Andrea Arcangeli <aarcange@redhat.com>
    Cc: Axel Rasmussen <axelrasmussen@google.com>
    Cc: David Hildenbrand <david@redhat.com>
    Cc: Hugh Dickins <hughd@google.com>
    Cc: Jerome Glisse <jglisse@redhat.com>
    Cc: "Kirill A . Shutemov" <kirill@shutemov.name>
    Cc: Matthew Wilcox <willy@infradead.org>
    Cc: Mike Kravetz <mike.kravetz@oracle.com>
    Cc: Mike Rapoport <rppt@linux.vnet.ibm.com>
    Cc: Nadav Amit <nadav.amit@gmail.com>
    Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
    999dad82
memory.c 157 KB