Lines Matching defs:pag

415 	ASSERT(args->pag->pagf_freeblks + args->pag->pagf_flcount >=
1186 xfs_ag_resv_alloc_extent(args->pag, args->resv, args);
1633 xfs_extent_busy_flush(args->mp, args->pag,
1741 args->pag, busy_gen);
1825 xfs_extent_busy_flush(args->mp, args->pag, busy_gen);
2212 struct xfs_perag *pag,
2222 if (need > pag->pagf_flcount)
2223 delta = need - pag->pagf_flcount;
2230 if (pag->pagf_freeblks - pag->pagf_longest < reserved)
2231 delta += reserved - (pag->pagf_freeblks - pag->pagf_longest);
2237 if (pag->pagf_longest > delta)
2238 return min_t(xfs_extlen_t, pag->pag_mount->m_ag_max_usable,
2239 pag->pagf_longest - delta);
2242 return pag->pagf_flcount > 0 || pag->pagf_longest > 0;
2246 * Compute the minimum length of the AGFL in the given AG. If @pag is NULL,
2252 struct xfs_perag *pag)
2256 const uint8_t *levels = pag ? pag->pagf_levels : fake_levels;
2287 struct xfs_perag *pag = args->pag;
2296 reservation = xfs_ag_resv_needed(pag, args->resv);
2300 longest = xfs_alloc_longest_free_extent(pag, min_free, reservation);
2309 agflcount = min_t(xfs_extlen_t, pag->pagf_flcount, min_free);
2310 available = (int)(pag->pagf_freeblks + agflcount -
2418 struct xfs_perag *pag)
2423 ASSERT(pag->pagf_agflreset);
2429 pag->pag_agno, pag->pagf_flcount);
2437 pag->pagf_flcount = 0;
2438 pag->pagf_agflreset = false;
2487 struct xfs_perag *pag = args->pag;
2499 if (!pag->pagf_init) {
2510 * If this is a metadata preferred pag and we are user data then try
2514 if (pag->pagf_metadata && (args->datatype & XFS_ALLOC_USERDATA) &&
2520 need = xfs_alloc_min_freelist(mp, pag);
2540 if (pag->pagf_agflreset)
2541 xfs_agfl_reset(tp, agbp, pag);
2544 need = xfs_alloc_min_freelist(mp, pag);
2578 while (!(flags & XFS_ALLOC_FLAG_NOSHRINK) && pag->pagf_flcount > need) {
2593 targs.pag = pag;
2599 while (pag->pagf_flcount < need) {
2601 targs.maxlen = need - pag->pagf_flcount;
2661 xfs_perag_t *pag; /* per allocation group data */
2689 pag = agbp->b_pag;
2690 ASSERT(!pag->pagf_agflreset);
2693 pag->pagf_flcount--;
2698 pag->pagf_btreeblks++;
2751 * Interface for inode allocation to force the pag data to be initialized.
2785 xfs_perag_t *pag; /* per allocation group data */
2796 pag = agbp->b_pag;
2797 ASSERT(!pag->pagf_agflreset);
2800 pag->pagf_flcount++;
2805 pag->pagf_btreeblks--;
2987 struct xfs_perag *pag; /* per allocation group data */
3004 pag = (*bpp)->b_pag;
3005 if (!pag->pagf_init) {
3006 pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks);
3007 pag->pagf_btreeblks = be32_to_cpu(agf->agf_btreeblks);
3008 pag->pagf_flcount = be32_to_cpu(agf->agf_flcount);
3009 pag->pagf_longest = be32_to_cpu(agf->agf_longest);
3010 pag->pagf_levels[XFS_BTNUM_BNOi] =
3012 pag->pagf_levels[XFS_BTNUM_CNTi] =
3014 pag->pagf_levels[XFS_BTNUM_RMAPi] =
3016 pag->pagf_refcount_level = be32_to_cpu(agf->agf_refcount_level);
3017 pag->pagf_init = 1;
3018 pag->pagf_agflreset = xfs_agfl_needs_reset(mp, agf);
3022 ASSERT(pag->pagf_freeblks == be32_to_cpu(agf->agf_freeblks));
3023 ASSERT(pag->pagf_btreeblks == be32_to_cpu(agf->agf_btreeblks));
3024 ASSERT(pag->pagf_flcount == be32_to_cpu(agf->agf_flcount));
3025 ASSERT(pag->pagf_longest == be32_to_cpu(agf->agf_longest));
3026 ASSERT(pag->pagf_levels[XFS_BTNUM_BNOi] ==
3028 ASSERT(pag->pagf_levels[XFS_BTNUM_CNTi] ==
3088 args->pag = xfs_perag_get(mp, args->agno);
3141 args->pag = xfs_perag_get(mp, args->agno);
3195 xfs_perag_put(args->pag);
3223 xfs_perag_put(args->pag);
3226 xfs_perag_put(args->pag);
3252 args.pag = xfs_perag_get(args.mp, args.agno);
3253 ASSERT(args.pag);
3261 xfs_perag_put(args.pag);