Lines Matching refs:pag
117 static inline bool xfs_perag_ ## name (struct xfs_perag *pag) \
119 return test_bit(XFS_AGSTATE_ ## NAME, &pag->pag_opstate); \
137 void xfs_perag_put(struct xfs_perag *pag);
143 void xfs_perag_rele(struct xfs_perag *pag);
153 xfs_verify_agbno(struct xfs_perag *pag, xfs_agblock_t agbno) in xfs_verify_agbno() argument
155 if (agbno >= pag->block_count) in xfs_verify_agbno()
157 if (agbno <= pag->min_block) in xfs_verify_agbno()
164 struct xfs_perag *pag, in xfs_verify_agbext() argument
171 if (!xfs_verify_agbno(pag, agbno)) in xfs_verify_agbext()
174 return xfs_verify_agbno(pag, agbno + len - 1); in xfs_verify_agbext()
182 xfs_verify_agino(struct xfs_perag *pag, xfs_agino_t agino) in xfs_verify_agino() argument
184 if (agino < pag->agino_min) in xfs_verify_agino()
186 if (agino > pag->agino_max) in xfs_verify_agino()
196 xfs_verify_agino_or_null(struct xfs_perag *pag, xfs_agino_t agino) in xfs_verify_agino_or_null() argument
200 return xfs_verify_agino(pag, agino); in xfs_verify_agino_or_null()
215 struct xfs_perag *pag, in xfs_perag_next() argument
219 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_next()
221 *agno = pag->pag_agno + 1; in xfs_perag_next()
222 xfs_perag_rele(pag); in xfs_perag_next()
224 pag = xfs_perag_grab(mp, *agno); in xfs_perag_next()
225 if (pag) in xfs_perag_next()
226 return pag; in xfs_perag_next()
232 #define for_each_perag_range(mp, agno, end_agno, pag) \ argument
233 for ((pag) = xfs_perag_grab((mp), (agno)); \
234 (pag) != NULL; \
235 (pag) = xfs_perag_next((pag), &(agno), (end_agno)))
237 #define for_each_perag_from(mp, agno, pag) \ argument
238 for_each_perag_range((mp), (agno), (mp)->m_sb.sb_agcount - 1, (pag))
240 #define for_each_perag(mp, agno, pag) \ argument
242 for_each_perag_from((mp), (agno), (pag))
244 #define for_each_perag_tag(mp, agno, pag, tag) \ argument
245 for ((agno) = 0, (pag) = xfs_perag_grab_tag((mp), 0, (tag)); \
246 (pag) != NULL; \
247 (agno) = (pag)->pag_agno + 1, \
248 xfs_perag_rele(pag), \
249 (pag) = xfs_perag_grab_tag((mp), (agno), (tag)))
253 struct xfs_perag *pag, in xfs_perag_next_wrap() argument
259 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_next_wrap()
261 *agno = pag->pag_agno + 1; in xfs_perag_next_wrap()
262 xfs_perag_rele(pag); in xfs_perag_next_wrap()
270 pag = xfs_perag_grab(mp, *agno); in xfs_perag_next_wrap()
271 if (pag) in xfs_perag_next_wrap()
272 return pag; in xfs_perag_next_wrap()
282 #define for_each_perag_wrap_range(mp, start_agno, restart_agno, wrap_agno, agno, pag) \ argument
283 for ((agno) = (start_agno), (pag) = xfs_perag_grab((mp), (agno)); \
284 (pag) != NULL; \
285 (pag) = xfs_perag_next_wrap((pag), &(agno), (start_agno), \
291 #define for_each_perag_wrap_at(mp, start_agno, wrap_agno, agno, pag) \ argument
292 for_each_perag_wrap_range((mp), (start_agno), 0, (wrap_agno), (agno), (pag))
298 #define for_each_perag_wrap(mp, start_agno, agno, pag) \ argument
300 (agno), (pag))
317 int xfs_ag_shrink_space(struct xfs_perag *pag, struct xfs_trans **tpp,
319 int xfs_ag_extend_space(struct xfs_perag *pag, struct xfs_trans *tp,
321 int xfs_ag_get_geometry(struct xfs_perag *pag, struct xfs_ag_geometry *ageo);