Lines Matching defs: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)
168 if (agbno >= pag->block_count)
170 if (agbno <= pag->min_block)
177 struct xfs_perag *pag,
184 if (!xfs_verify_agbno(pag, agbno))
187 return xfs_verify_agbno(pag, agbno + len - 1);
195 xfs_verify_agino(struct xfs_perag *pag, xfs_agino_t agino)
197 if (agino < pag->agino_min)
199 if (agino > pag->agino_max)
209 xfs_verify_agino_or_null(struct xfs_perag *pag, xfs_agino_t agino)
213 return xfs_verify_agino(pag, agino);
228 struct xfs_perag *pag,
232 struct xfs_mount *mp = pag->pag_mount;
234 *agno = pag->pag_agno + 1;
235 xfs_perag_rele(pag);
237 pag = xfs_perag_grab(mp, *agno);
238 if (pag)
239 return pag;
245 #define for_each_perag_range(mp, agno, end_agno, pag) \
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) \
251 for_each_perag_range((mp), (agno), (mp)->m_sb.sb_agcount - 1, (pag))
253 #define for_each_perag(mp, agno, pag) \
255 for_each_perag_from((mp), (agno), (pag))
257 #define for_each_perag_tag(mp, agno, pag, tag) \
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,
272 struct xfs_mount *mp = pag->pag_mount;
274 *agno = pag->pag_agno + 1;
275 xfs_perag_rele(pag);
283 pag = xfs_perag_grab(mp, *agno);
284 if (pag)
285 return pag;
295 #define for_each_perag_wrap_range(mp, start_agno, restart_agno, wrap_agno, agno, pag) \
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) \
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) \
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);