spool             927 fs/hugetlbfs/inode.c 	struct hugepage_subpool *spool = sbinfo->spool;
spool             950 fs/hugetlbfs/inode.c 	if (spool) {
spool             951 fs/hugetlbfs/inode.c 		if (spool->max_hpages != -1)
spool             953 fs/hugetlbfs/inode.c 				   (unsigned long long)spool->max_hpages << hpage_shift);
spool             954 fs/hugetlbfs/inode.c 		if (spool->min_hpages != -1)
spool             956 fs/hugetlbfs/inode.c 				   (unsigned long long)spool->min_hpages << hpage_shift);
spool             972 fs/hugetlbfs/inode.c 		if (sbinfo->spool) {
spool             975 fs/hugetlbfs/inode.c 			spin_lock(&sbinfo->spool->lock);
spool             976 fs/hugetlbfs/inode.c 			buf->f_blocks = sbinfo->spool->max_hpages;
spool             977 fs/hugetlbfs/inode.c 			free_pages = sbinfo->spool->max_hpages
spool             978 fs/hugetlbfs/inode.c 				- sbinfo->spool->used_hpages;
spool             980 fs/hugetlbfs/inode.c 			spin_unlock(&sbinfo->spool->lock);
spool             997 fs/hugetlbfs/inode.c 		if (sbi->spool)
spool             998 fs/hugetlbfs/inode.c 			hugepage_put_subpool(sbi->spool);
spool            1264 fs/hugetlbfs/inode.c 	sbinfo->spool		= NULL;
spool            1275 fs/hugetlbfs/inode.c 		sbinfo->spool = hugepage_new_subpool(ctx->hstate,
spool            1278 fs/hugetlbfs/inode.c 		if (!sbinfo->spool)
spool            1292 fs/hugetlbfs/inode.c 	kfree(sbinfo->spool);
spool              60 include/linux/hugetlb.h void hugepage_put_subpool(struct hugepage_subpool *spool);
spool             265 include/linux/hugetlb.h 	struct hugepage_subpool *spool;
spool              77 mm/hugetlb.c   static inline void unlock_or_release_subpool(struct hugepage_subpool *spool)
spool              79 mm/hugetlb.c   	bool free = (spool->count == 0) && (spool->used_hpages == 0);
spool              81 mm/hugetlb.c   	spin_unlock(&spool->lock);
spool              87 mm/hugetlb.c   		if (spool->min_hpages != -1)
spool              88 mm/hugetlb.c   			hugetlb_acct_memory(spool->hstate,
spool              89 mm/hugetlb.c   						-spool->min_hpages);
spool              90 mm/hugetlb.c   		kfree(spool);
spool              97 mm/hugetlb.c   	struct hugepage_subpool *spool;
spool              99 mm/hugetlb.c   	spool = kzalloc(sizeof(*spool), GFP_KERNEL);
spool             100 mm/hugetlb.c   	if (!spool)
spool             103 mm/hugetlb.c   	spin_lock_init(&spool->lock);
spool             104 mm/hugetlb.c   	spool->count = 1;
spool             105 mm/hugetlb.c   	spool->max_hpages = max_hpages;
spool             106 mm/hugetlb.c   	spool->hstate = h;
spool             107 mm/hugetlb.c   	spool->min_hpages = min_hpages;
spool             110 mm/hugetlb.c   		kfree(spool);
spool             113 mm/hugetlb.c   	spool->rsv_hpages = min_hpages;
spool             115 mm/hugetlb.c   	return spool;
spool             118 mm/hugetlb.c   void hugepage_put_subpool(struct hugepage_subpool *spool)
spool             120 mm/hugetlb.c   	spin_lock(&spool->lock);
spool             121 mm/hugetlb.c   	BUG_ON(!spool->count);
spool             122 mm/hugetlb.c   	spool->count--;
spool             123 mm/hugetlb.c   	unlock_or_release_subpool(spool);
spool             134 mm/hugetlb.c   static long hugepage_subpool_get_pages(struct hugepage_subpool *spool,
spool             139 mm/hugetlb.c   	if (!spool)
spool             142 mm/hugetlb.c   	spin_lock(&spool->lock);
spool             144 mm/hugetlb.c   	if (spool->max_hpages != -1) {		/* maximum size accounting */
spool             145 mm/hugetlb.c   		if ((spool->used_hpages + delta) <= spool->max_hpages)
spool             146 mm/hugetlb.c   			spool->used_hpages += delta;
spool             154 mm/hugetlb.c   	if (spool->min_hpages != -1 && spool->rsv_hpages) {
spool             155 mm/hugetlb.c   		if (delta > spool->rsv_hpages) {
spool             160 mm/hugetlb.c   			ret = delta - spool->rsv_hpages;
spool             161 mm/hugetlb.c   			spool->rsv_hpages = 0;
spool             164 mm/hugetlb.c   			spool->rsv_hpages -= delta;
spool             169 mm/hugetlb.c   	spin_unlock(&spool->lock);
spool             179 mm/hugetlb.c   static long hugepage_subpool_put_pages(struct hugepage_subpool *spool,
spool             184 mm/hugetlb.c   	if (!spool)
spool             187 mm/hugetlb.c   	spin_lock(&spool->lock);
spool             189 mm/hugetlb.c   	if (spool->max_hpages != -1)		/* maximum size accounting */
spool             190 mm/hugetlb.c   		spool->used_hpages -= delta;
spool             193 mm/hugetlb.c   	if (spool->min_hpages != -1 && spool->used_hpages < spool->min_hpages) {
spool             194 mm/hugetlb.c   		if (spool->rsv_hpages + delta <= spool->min_hpages)
spool             197 mm/hugetlb.c   			ret = spool->rsv_hpages + delta - spool->min_hpages;
spool             199 mm/hugetlb.c   		spool->rsv_hpages += delta;
spool             200 mm/hugetlb.c   		if (spool->rsv_hpages > spool->min_hpages)
spool             201 mm/hugetlb.c   			spool->rsv_hpages = spool->min_hpages;
spool             208 mm/hugetlb.c   	unlock_or_release_subpool(spool);
spool             215 mm/hugetlb.c   	return HUGETLBFS_SB(inode->i_sb)->spool;
spool             577 mm/hugetlb.c   	struct hugepage_subpool *spool = subpool_inode(inode);
spool             580 mm/hugetlb.c   	rsv_adjust = hugepage_subpool_get_pages(spool, 1);
spool            1267 mm/hugetlb.c   	struct hugepage_subpool *spool =
spool            1294 mm/hugetlb.c   		if (hugepage_subpool_put_pages(spool, 1) == 0)
spool            2117 mm/hugetlb.c   	struct hugepage_subpool *spool = subpool_vma(vma);
spool            2143 mm/hugetlb.c   		gbl_chg = hugepage_subpool_get_pages(spool, 1);
spool            2188 mm/hugetlb.c   	set_page_private(page, (unsigned long)spool);
spool            2203 mm/hugetlb.c   		rsv_adjust = hugepage_subpool_put_pages(spool, 1);
spool            2212 mm/hugetlb.c   		hugepage_subpool_put_pages(spool, 1);
spool            3299 mm/hugetlb.c   	struct hugepage_subpool *spool = subpool_vma(vma);
spool            3318 mm/hugetlb.c   		gbl_reserve = hugepage_subpool_put_pages(spool, reserve);
spool            4652 mm/hugetlb.c   	struct hugepage_subpool *spool = subpool_inode(inode);
spool            4707 mm/hugetlb.c   	gbl_reserve = hugepage_subpool_get_pages(spool, chg);
spool            4720 mm/hugetlb.c   		(void)hugepage_subpool_put_pages(spool, chg);
spool            4748 mm/hugetlb.c   			rsv_adjust = hugepage_subpool_put_pages(spool,
spool            4770 mm/hugetlb.c   	struct hugepage_subpool *spool = subpool_inode(inode);
spool            4796 mm/hugetlb.c   	gbl_reserve = hugepage_subpool_put_pages(spool, (chg - freed));