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));