Forgot to include one hunk: diff --git a/include/linux/mm_inline.h b/include/linux/mm_inline.h index cff619f762d0..17c20597e244 100644 --- a/include/linux/mm_inline.h +++ b/include/linux/mm_inline.h @@ -175,6 +175,11 @@ static inline void free_vma_anon_name(struct vm_area_struct *vma) anon_vma_name_put(vma->anon_name); } +static inline void dup_vma_anon_name(struct vm_area_struct *vma) +{ + anon_vma_name_get(vma->anon_name); +} + #else /* CONFIG_ANON_VMA_NAME */ static inline const char *vma_anon_name(struct vm_area_struct *vma) { @@ -187,6 +192,9 @@ static inline bool anon_vma_name_eq(struct anon_vma_name *name1, struct anon_vma static inline void free_vma_anon_name(struct vm_area_struct *vma) { } +static inline void dup_vma_anon_name(struct vm_area_struct *vma) +{ +} #endif /* CONFIG_ANON_VMA_NAME */ static inline void init_tlb_flush_pending(struct mm_struct *mm) diff --git a/kernel/fork.c b/kernel/fork.c index d75a528f7b21..dee514488003 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -366,7 +366,7 @@ struct vm_area_struct *vm_area_dup(struct vm_area_struct *orig) *new = data_race(*orig); INIT_LIST_HEAD(&new->anon_vma_chain); new->vm_next = new->vm_prev = NULL; - dup_vma_anon_name(orig, new); + dup_vma_anon_name(new); } return new; } -- Michal Hocko SUSE Labs