Lines Matching refs:resv_map

261 static long region_add(struct resv_map *resv, long f, long t)  in region_add()
357 static long region_chg(struct resv_map *resv, long f, long t) in region_chg()
462 static void region_abort(struct resv_map *resv, long f, long t) in region_abort()
484 static long region_del(struct resv_map *resv, long f, long t) in region_del()
591 static long region_count(struct resv_map *resv, long f, long t) in region_count()
698 struct resv_map *resv_map_alloc(void) in resv_map_alloc()
700 struct resv_map *resv_map = kmalloc(sizeof(*resv_map), GFP_KERNEL); in resv_map_alloc() local
703 if (!resv_map || !rg) { in resv_map_alloc()
704 kfree(resv_map); in resv_map_alloc()
709 kref_init(&resv_map->refs); in resv_map_alloc()
710 spin_lock_init(&resv_map->lock); in resv_map_alloc()
711 INIT_LIST_HEAD(&resv_map->regions); in resv_map_alloc()
713 resv_map->adds_in_progress = 0; in resv_map_alloc()
715 INIT_LIST_HEAD(&resv_map->region_cache); in resv_map_alloc()
716 list_add(&rg->link, &resv_map->region_cache); in resv_map_alloc()
717 resv_map->region_cache_count = 1; in resv_map_alloc()
719 return resv_map; in resv_map_alloc()
724 struct resv_map *resv_map = container_of(ref, struct resv_map, refs); in resv_map_release() local
725 struct list_head *head = &resv_map->region_cache; in resv_map_release()
729 region_del(resv_map, 0, LONG_MAX); in resv_map_release()
737 VM_BUG_ON(resv_map->adds_in_progress); in resv_map_release()
739 kfree(resv_map); in resv_map_release()
742 static inline struct resv_map *inode_resv_map(struct inode *inode) in inode_resv_map()
752 return (struct resv_map *)(&inode->i_data)->private_data; in inode_resv_map()
755 static struct resv_map *vma_resv_map(struct vm_area_struct *vma) in vma_resv_map()
765 return (struct resv_map *)(get_vma_private_data(vma) & in vma_resv_map()
770 static void set_vma_resv_map(struct vm_area_struct *vma, struct resv_map *map) in set_vma_resv_map()
1940 struct resv_map *resv; in __vma_reservation_common()
3232 struct resv_map *resv = vma_resv_map(vma); in hugetlb_vm_op_open()
3249 struct resv_map *resv = vma_resv_map(vma); in hugetlb_vm_op_close()
4604 struct resv_map *resv_map; in hugetlb_reserve_pages() local
4633 resv_map = inode_resv_map(inode); in hugetlb_reserve_pages()
4635 chg = region_chg(resv_map, from, to); in hugetlb_reserve_pages()
4638 resv_map = resv_map_alloc(); in hugetlb_reserve_pages()
4639 if (!resv_map) in hugetlb_reserve_pages()
4644 set_vma_resv_map(vma, resv_map); in hugetlb_reserve_pages()
4687 long add = region_add(resv_map, from, to); in hugetlb_reserve_pages()
4709 region_abort(resv_map, from, to); in hugetlb_reserve_pages()
4711 kref_put(&resv_map->refs, resv_map_release); in hugetlb_reserve_pages()
4719 struct resv_map *resv_map = inode_resv_map(inode); in hugetlb_unreserve_pages() local
4728 if (resv_map) { in hugetlb_unreserve_pages()
4729 chg = region_del(resv_map, start, end); in hugetlb_unreserve_pages()