Lines Matching refs:anon_vma

351 		struct anon_vma *anon_vma = vma->anon_vma;  in validate_mm()  local
354 if (anon_vma) { in validate_mm()
355 anon_vma_lock_read(anon_vma); in validate_mm()
358 anon_vma_unlock_read(anon_vma); in validate_mm()
395 anon_vma_interval_tree_remove(avc, &avc->anon_vma->rb_root); in anon_vma_interval_tree_pre_update_vma()
404 anon_vma_interval_tree_insert(avc, &avc->anon_vma->rb_root); in anon_vma_interval_tree_post_update_vma()
474 vp->anon_vma = vma->anon_vma; in init_multi_vma_prep()
478 if (!vp->anon_vma && next) in init_multi_vma_prep()
479 vp->anon_vma = next->anon_vma; in init_multi_vma_prep()
525 if (vp->anon_vma) { in vma_prepare()
526 anon_vma_lock_write(vp->anon_vma); in vma_prepare()
576 if (vp->anon_vma) { in vma_complete()
580 anon_vma_unlock_write(vp->anon_vma); in vma_complete()
598 if (vp->remove->anon_vma) in vma_complete()
635 if (src->anon_vma && !dst->anon_vma) { in dup_anon_vma()
636 dst->anon_vma = src->anon_vma; in dup_anon_vma()
773 static inline int is_mergeable_anon_vma(struct anon_vma *anon_vma1, in is_mergeable_anon_vma()
774 struct anon_vma *anon_vma2, in is_mergeable_anon_vma()
800 struct anon_vma *anon_vma, struct file *file, in can_vma_merge_before() argument
806 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) { in can_vma_merge_before()
822 struct anon_vma *anon_vma, struct file *file, in can_vma_merge_after() argument
828 is_mergeable_anon_vma(anon_vma, vma->anon_vma, vma)) { in can_vma_merge_after()
889 struct anon_vma *anon_vma, struct file *file, in vma_merge() argument
932 && can_vma_merge_after(prev, vm_flags, anon_vma, file, in vma_merge()
942 anon_vma, file, pgoff+pglen, in vma_merge()
950 is_mergeable_anon_vma(prev->anon_vma, next->anon_vma, NULL)) { in vma_merge()
956 if (!remove->anon_vma) in vma_merge()
999 VM_WARN_ON(vp.anon_vma && adjust && adjust->anon_vma && in vma_merge()
1000 vp.anon_vma != adjust->anon_vma); in vma_merge()
1074 static struct anon_vma *reusable_anon_vma(struct vm_area_struct *old, struct vm_area_struct *a, str… in reusable_anon_vma()
1077 struct anon_vma *anon_vma = READ_ONCE(old->anon_vma); in reusable_anon_vma() local
1079 if (anon_vma && list_is_singular(&old->anon_vma_chain)) in reusable_anon_vma()
1080 return anon_vma; in reusable_anon_vma()
1093 struct anon_vma *find_mergeable_anon_vma(struct vm_area_struct *vma) in find_mergeable_anon_vma()
1096 struct anon_vma *anon_vma = NULL; in find_mergeable_anon_vma() local
1102 anon_vma = reusable_anon_vma(next, vma, next); in find_mergeable_anon_vma()
1103 if (anon_vma) in find_mergeable_anon_vma()
1104 return anon_vma; in find_mergeable_anon_vma()
1112 anon_vma = reusable_anon_vma(prev, prev, vma); in find_mergeable_anon_vma()
1124 return anon_vma; in find_mergeable_anon_vma()
1908 anon_vma_lock_write(vma->anon_vma); in expand_upwards()
1946 anon_vma_unlock_write(vma->anon_vma); in expand_upwards()
1990 anon_vma_lock_write(vma->anon_vma); in expand_downwards()
2029 anon_vma_unlock_write(vma->anon_vma); in expand_downwards()
2530 (vma ? can_vma_merge_after(prev, vm_flags, vma->anon_vma, file, in mmap_region()
3099 BUG_ON(vma->anon_vma); in insert_vm_struct()
3131 if (unlikely(vma_is_anonymous(vma) && !vma->anon_vma)) { in copy_vma()
3141 vma->anon_vma, vma->vm_file, pgoff, vma_policy(vma), in copy_vma()
3408 static void vm_lock_anon_vma(struct mm_struct *mm, struct anon_vma *anon_vma) in vm_lock_anon_vma() argument
3410 if (!test_bit(0, (unsigned long *) &anon_vma->root->rb_root.rb_root.rb_node)) { in vm_lock_anon_vma()
3415 down_write_nest_lock(&anon_vma->root->rwsem, &mm->mmap_lock); in vm_lock_anon_vma()
3426 &anon_vma->root->rb_root.rb_root.rb_node)) in vm_lock_anon_vma()
3517 if (vma->anon_vma) in mm_take_all_locks()
3519 vm_lock_anon_vma(mm, avc->anon_vma); in mm_take_all_locks()
3529 static void vm_unlock_anon_vma(struct anon_vma *anon_vma) in vm_unlock_anon_vma() argument
3531 if (test_bit(0, (unsigned long *) &anon_vma->root->rb_root.rb_root.rb_node)) { in vm_unlock_anon_vma()
3545 &anon_vma->root->rb_root.rb_root.rb_node)) in vm_unlock_anon_vma()
3547 anon_vma_unlock_write(anon_vma); in vm_unlock_anon_vma()
3579 if (vma->anon_vma) in mm_drop_all_locks()
3581 vm_unlock_anon_vma(avc->anon_vma); in mm_drop_all_locks()