| From | "Kirill A. Shutemov" <> | Subject | [PATCHv2 22/59] mm/rmap: Clear vma->anon_vma on unlink_anon_vmas() | Date | Wed, 31 Jul 2019 18:07:36 +0300 |
| |
If all pages in the VMA got unmapped there's no reason to link it into original anon VMA hierarchy: it cannot possibly share any pages with other VMA.
Set vma->anon_vma to NULL on unlink_anon_vmas(). With the change VMA can be reused. The new anon VMA will be allocated on the first fault.
Signed-off-by: Kirill A. Shutemov <kirill.shutemov@linux.intel.com> --- mm/rmap.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-)
diff --git a/mm/rmap.c b/mm/rmap.c index e5dfe2ae6b0d..911367b5fb40 100644 --- a/mm/rmap.c +++ b/mm/rmap.c @@ -400,8 +400,10 @@ void unlink_anon_vmas(struct vm_area_struct *vma) list_del(&avc->same_vma); anon_vma_chain_free(avc); } - if (vma->anon_vma) + if (vma->anon_vma) { vma->anon_vma->degree--; + vma->anon_vma = NULL; + } unlock_anon_vma_root(root); /* -- 2.21.0
|