Lines Matching refs:pag

125 static inline bool xfs_perag_ ## name (struct xfs_perag *pag) \
127 return test_bit(XFS_AGSTATE_ ## NAME, &pag->pag_opstate); \
149 struct xfs_perag *xfs_perag_hold(struct xfs_perag *pag);
150 void xfs_perag_put(struct xfs_perag *pag);
156 void xfs_perag_rele(struct xfs_perag *pag);
166 xfs_verify_agbno(struct xfs_perag *pag, xfs_agblock_t agbno) in xfs_verify_agbno() argument
168 if (agbno >= pag->block_count) in xfs_verify_agbno()
170 if (agbno <= pag->min_block) in xfs_verify_agbno()
177 struct xfs_perag *pag, in xfs_verify_agbext() argument
184 if (!xfs_verify_agbno(pag, agbno)) in xfs_verify_agbext()
187 return xfs_verify_agbno(pag, agbno + len - 1); in xfs_verify_agbext()
195 xfs_verify_agino(struct xfs_perag *pag, xfs_agino_t agino) in xfs_verify_agino() argument
197 if (agino < pag->agino_min) in xfs_verify_agino()
199 if (agino > pag->agino_max) in xfs_verify_agino()
209 xfs_verify_agino_or_null(struct xfs_perag *pag, xfs_agino_t agino) in xfs_verify_agino_or_null() argument
213 return xfs_verify_agino(pag, agino); in xfs_verify_agino_or_null()
228 struct xfs_perag *pag, in xfs_perag_next() argument
232 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_next()
234 *agno = pag->pag_agno + 1; in xfs_perag_next()
235 xfs_perag_rele(pag); in xfs_perag_next()
237 pag = xfs_perag_grab(mp, *agno); in xfs_perag_next()
238 if (pag) in xfs_perag_next()
239 return pag; in xfs_perag_next()
245 #define for_each_perag_range(mp, agno, end_agno, pag) \ argument
246 for ((pag) = xfs_perag_grab((mp), (agno)); \
247 (pag) != NULL; \
248 (pag) = xfs_perag_next((pag), &(agno), (end_agno)))
250 #define for_each_perag_from(mp, agno, pag) \ argument
251 for_each_perag_range((mp), (agno), (mp)->m_sb.sb_agcount - 1, (pag))
253 #define for_each_perag(mp, agno, pag) \ argument
255 for_each_perag_from((mp), (agno), (pag))
257 #define for_each_perag_tag(mp, agno, pag, tag) \ argument
258 for ((agno) = 0, (pag) = xfs_perag_grab_tag((mp), 0, (tag)); \
259 (pag) != NULL; \
260 (agno) = (pag)->pag_agno + 1, \
261 xfs_perag_rele(pag), \
262 (pag) = xfs_perag_grab_tag((mp), (agno), (tag)))
266 struct xfs_perag *pag, in xfs_perag_next_wrap() argument
272 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_next_wrap()
274 *agno = pag->pag_agno + 1; in xfs_perag_next_wrap()
275 xfs_perag_rele(pag); in xfs_perag_next_wrap()
283 pag = xfs_perag_grab(mp, *agno); in xfs_perag_next_wrap()
284 if (pag) in xfs_perag_next_wrap()
285 return pag; in xfs_perag_next_wrap()
295 #define for_each_perag_wrap_range(mp, start_agno, restart_agno, wrap_agno, agno, pag) \ argument
296 for ((agno) = (start_agno), (pag) = xfs_perag_grab((mp), (agno)); \
297 (pag) != NULL; \
298 (pag) = xfs_perag_next_wrap((pag), &(agno), (start_agno), \
304 #define for_each_perag_wrap_at(mp, start_agno, wrap_agno, agno, pag) \ argument
305 for_each_perag_wrap_range((mp), (start_agno), 0, (wrap_agno), (agno), (pag))
311 #define for_each_perag_wrap(mp, start_agno, agno, pag) \ argument
313 (agno), (pag))
330 int xfs_ag_shrink_space(struct xfs_perag *pag, struct xfs_trans **tpp,
332 int xfs_ag_extend_space(struct xfs_perag *pag, struct xfs_trans *tp,
334 int xfs_ag_get_geometry(struct xfs_perag *pag, struct xfs_ag_geometry *ageo);