Lines Matching refs:vma
72 struct vm_area_struct *vma, unsigned char *vec) in __mincore_unmapped_range() argument
77 if (vma->vm_file) { in __mincore_unmapped_range()
80 pgoff = linear_page_index(vma, addr); in __mincore_unmapped_range()
82 vec[i] = mincore_page(vma->vm_file->f_mapping, pgoff); in __mincore_unmapped_range()
95 walk->vma, walk->private); in mincore_unmapped_range()
103 struct vm_area_struct *vma = walk->vma; in mincore_pte_range() local
108 ptl = pmd_trans_huge_lock(pmd, vma); in mincore_pte_range()
116 __mincore_unmapped_range(addr, end, vma, vec); in mincore_pte_range()
126 vma, vec); in mincore_pte_range()
157 static inline bool can_do_mincore(struct vm_area_struct *vma) in can_do_mincore() argument
159 if (vma_is_anonymous(vma)) in can_do_mincore()
161 if (!vma->vm_file) in can_do_mincore()
170 file_inode(vma->vm_file)) || in can_do_mincore()
171 file_permission(vma->vm_file, MAY_WRITE) == 0; in can_do_mincore()
187 struct vm_area_struct *vma; in do_mincore() local
191 vma = find_vma(current->mm, addr); in do_mincore()
192 if (!vma || addr < vma->vm_start) in do_mincore()
194 end = min(vma->vm_end, addr + (pages << PAGE_SHIFT)); in do_mincore()
195 if (!can_do_mincore(vma)) { in do_mincore()
200 err = walk_page_range(vma->vm_mm, addr, end, &mincore_walk_ops, vec); in do_mincore()