Files
linux/include/linux
Peter Xu 999dad824c mm/shmem: persist uffd-wp bit across zapping for file-backed
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.com
Signed-off-by: Peter 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: Andrew Morton <akpm@linux-foundation.org>
2022-05-13 07:20:10 -07:00
..
2022-02-27 13:38:10 +00:00
2022-03-23 19:58:38 +01:00
2022-02-01 14:25:50 +02:00
2022-01-22 08:33:34 +02:00
2022-01-15 08:47:31 -08:00
2022-03-08 19:39:38 -07:00
2022-03-17 20:17:18 -07:00
2022-03-11 19:15:03 -08:00
2021-09-08 15:32:35 -07:00
2022-03-15 10:32:44 +01:00
2021-12-10 17:10:55 -08:00
2022-02-07 16:35:35 -08:00
2021-12-10 12:51:28 +01:00
2021-08-26 15:32:28 -04:00
2021-09-06 07:20:56 -04:00
2022-03-16 15:13:36 -07:00
2022-01-15 08:47:31 -08:00
2022-02-13 16:50:07 -08:00
2022-05-09 18:20:49 -07:00
2022-04-07 09:43:41 -04:00
2022-01-20 08:52:54 +02:00
2022-05-13 07:20:05 -07:00
2022-03-02 22:44:49 -08:00
2022-02-28 23:26:27 -08:00
2022-03-15 08:23:29 -04:00
2022-02-28 13:25:49 +01:00
2022-02-19 19:23:53 -08:00
2022-02-14 15:43:15 +01:00
2021-10-05 06:54:16 -05:00
2022-02-05 15:20:34 +00:00
2022-03-18 09:47:04 +01:00
2022-01-27 13:53:26 +00:00
2021-09-30 12:46:44 -06:00
2022-03-21 12:57:38 -04:00
2022-04-28 23:16:14 -07:00
2021-12-16 22:22:20 +01:00
2021-08-23 13:19:12 +02:00
2022-04-01 14:40:44 -04:00
2022-02-09 09:24:40 -05:00
2022-02-28 13:45:04 +02:00
2022-01-12 10:14:09 -06:00
2021-11-16 19:07:53 -08:00
2021-09-17 13:52:17 +01:00
2021-09-27 09:27:29 -04:00
2022-04-01 13:45:08 -04:00
2022-02-02 07:49:59 -07:00
2021-09-27 17:00:21 +02:00
2022-02-09 08:04:44 +01:00
2022-02-09 08:04:44 +01:00
2021-10-14 13:29:18 +02:00
2022-04-19 10:19:02 -07:00
2021-08-18 22:08:24 +02:00
2022-01-22 08:33:37 +02:00
2022-01-08 12:43:57 -06:00
2021-11-18 09:36:39 +01:00
2022-01-24 14:45:02 +01:00
2022-03-08 14:33:36 -06:00
2022-03-17 20:16:29 -07:00
2022-03-23 19:58:41 +01:00
2022-02-24 15:04:51 +00:00
2021-08-06 13:41:48 -07:00
2021-08-19 09:02:55 +09:00
2021-11-03 11:41:25 -07:00
2022-05-13 07:20:09 -07:00
2022-05-13 07:20:09 -07:00
2022-02-25 09:36:06 +01:00
2022-04-11 19:18:27 -06:00
2022-02-16 07:49:41 +01:00
2022-03-22 15:57:11 -07:00
2021-11-25 18:35:23 +01:00
2022-01-26 14:54:48 +01:00
2022-01-27 13:53:27 +00:00
2021-10-12 11:41:39 -03:00
2021-12-30 12:13:04 +01:00
2022-03-28 16:53:00 -04:00
2021-08-11 06:44:24 -04:00
2021-12-09 10:49:56 -08:00
2021-10-19 23:44:30 +08:00