| /linux-6.15/fs/xfs/libxfs/ |
| H A D | xfs_ag.h | 155 struct xfs_perag *pag) in xfs_perag_hold() argument 190 return to_perag(xfs_group_next_range(mp, pag ? pag_group(pag) : NULL, in xfs_perag_next_range() 277 xfs_perag_rele(pag); in xfs_perag_next_wrap() 286 if (pag) in xfs_perag_next_wrap() 287 return pag; in xfs_perag_next_wrap() 299 (pag) != NULL; \ 300 (pag) = xfs_perag_next_wrap((pag), &(agno), (start_agno), \ 315 (agno), (pag)) 343 return XFS_AGB_TO_FSB(pag_mount(pag), pag_agno(pag), agbno); in xfs_agbno_to_fsb() 351 return XFS_AGB_TO_DADDR(pag_mount(pag), pag_agno(pag), agbno); in xfs_agbno_to_daddr() [all …]
|
| H A D | xfs_ag_resv.c | 70 struct xfs_perag *pag, in xfs_ag_resv_critical() argument 79 avail = pag->pagf_freeblks - pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_critical() 83 avail = pag->pagf_freeblks + pag->pagf_flcount - in xfs_ag_resv_critical() 106 struct xfs_perag *pag, in xfs_ag_resv_needed() argument 111 len = pag->pag_meta_resv.ar_reserved + pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_needed() 133 struct xfs_perag *pag, in __xfs_ag_resv_free() argument 142 if (pag_agno(pag) == 0) in __xfs_ag_resv_free() 162 struct xfs_perag *pag) in xfs_ag_resv_free() argument 170 struct xfs_perag *pag, in __xfs_ag_resv_init() argument 214 pag_agno(pag)); in __xfs_ag_resv_init() [all …]
|
| H A D | xfs_ag.c | 49 struct xfs_perag *pag; in xfs_initialize_perag_data() local 69 xfs_perag_put(pag); in xfs_initialize_perag_data() 78 xfs_perag_put(pag); in xfs_initialize_perag_data() 206 if (!pag) in xfs_update_last_ag_size() 211 __xfs_agino_range(mp, pag_group(pag)->xg_block_count, &pag->agino_min, in xfs_update_last_ag_size() 212 &pag->agino_max); in xfs_update_last_ag_size() 227 pag = kzalloc(sizeof(*pag), GFP_KERNEL); in xfs_perag_alloc() 228 if (!pag) in xfs_perag_alloc() 249 &pag->agino_max); in xfs_perag_alloc() 260 kfree(pag); in xfs_perag_alloc() [all …]
|
| H A D | xfs_ialloc.c | 114 struct xfs_perag *pag, in xfs_inobt_check_irec() argument 204 struct xfs_perag *pag, in xfs_inobt_insert() argument 551 struct xfs_perag *pag, in xfs_inobt_insert_sprec() argument 695 struct xfs_perag *pag, in xfs_ialloc_ag_alloc() argument 717 args.pag = pag; in xfs_ialloc_ag_alloc() 857 pag_agno(pag)), in xfs_ialloc_ag_alloc() 1065 struct xfs_perag *pag, in xfs_dialloc_check_ino() argument 1090 struct xfs_perag *pag, in xfs_dialloc_ag_inobt() argument 1734 if (!pag) in xfs_dialloc_good_ag() 1957 if (pag) in xfs_dialloc() [all …]
|
| H A D | xfs_ag_resv.h | 9 void xfs_ag_resv_free(struct xfs_perag *pag); 10 int xfs_ag_resv_init(struct xfs_perag *pag, struct xfs_trans *tp); 12 bool xfs_ag_resv_critical(struct xfs_perag *pag, enum xfs_ag_resv_type type); 13 xfs_extlen_t xfs_ag_resv_needed(struct xfs_perag *pag, 16 void xfs_ag_resv_alloc_extent(struct xfs_perag *pag, enum xfs_ag_resv_type type, 18 void xfs_ag_resv_free_extent(struct xfs_perag *pag, enum xfs_ag_resv_type type, 23 struct xfs_perag *pag, in xfs_perag_resv() argument 28 return &pag->pag_meta_resv; in xfs_perag_resv() 30 return &pag->pag_rmapbt_resv; in xfs_perag_resv()
|
| H A D | xfs_alloc.c | 463 ASSERT(args->pag->pagf_freeblks + args->pag->pagf_flcount >= in xfs_alloc_fix_len() 1397 args->pag); in xfs_alloc_ag_vextent_exact() 1813 args->pag); in xfs_alloc_ag_vextent_size() 2001 args->pag); in xfs_alloc_ag_vextent_size() 2425 if (pag->pagf_freeblks - pag->pagf_longest < reserved) in xfs_alloc_longest_free_extent() 2437 return pag->pagf_flcount > 0 || pag->pagf_longest > 0; in xfs_alloc_longest_free_extent() 2500 struct xfs_perag *pag = args->pag; in xfs_alloc_space_available() local 2616 pag_agno(pag), pag->pagf_flcount); in xfs_agfl_reset() 2831 struct xfs_perag *pag = args->pag; in xfs_alloc_fix_freelist() local 2960 targs.pag = pag; in xfs_alloc_fix_freelist() [all …]
|
| H A D | xfs_inode_util.c | 411 struct xfs_perag *pag, in xfs_iunlink_update_backref() argument 436 struct xfs_perag *pag, in xfs_iunlink_update_bucket() argument 458 xfs_ag_mark_sick(pag, XFS_SICK_AG_AGI); in xfs_iunlink_update_bucket() 472 struct xfs_perag *pag, in xfs_iunlink_insert_inode() argument 492 xfs_ag_mark_sick(pag, XFS_SICK_AG_AGI); in xfs_iunlink_insert_inode() 535 struct xfs_perag *pag; in xfs_iunlink() local 552 xfs_perag_put(pag); in xfs_iunlink() 559 struct xfs_perag *pag, in xfs_iunlink_remove_inode() argument 580 xfs_ag_mark_sick(pag, XFS_SICK_AG_AGI); in xfs_iunlink_remove_inode() 634 struct xfs_perag *pag, in xfs_iunlink_remove() argument [all …]
|
| H A D | xfs_alloc.h | 38 struct xfs_perag *pag; /* per-ag struct for this agno */ member 72 xfs_extlen_t xfs_alloc_longest_free_extent(struct xfs_perag *pag, 75 struct xfs_perag *pag); 76 int xfs_alloc_get_freelist(struct xfs_perag *pag, struct xfs_trans *tp, 78 int xfs_alloc_put_freelist(struct xfs_perag *pag, struct xfs_trans *tp, 146 struct xfs_perag *pag, 156 struct xfs_perag *pag, in xfs_free_extent() argument 162 return __xfs_free_extent(tp, pag, agbno, len, oinfo, type, false); in xfs_free_extent() 189 xfs_failaddr_t xfs_alloc_check_irec(struct xfs_perag *pag, 192 int xfs_read_agf(struct xfs_perag *pag, struct xfs_trans *tp, int flags, [all …]
|
| H A D | xfs_ialloc_btree.c | 115 args.pag = to_perag(cur->bc_group); in __xfs_inobt_alloc_block() 123 xfs_agbno_to_fsb(args.pag, sbno)); in __xfs_inobt_alloc_block() 478 struct xfs_perag *pag, in xfs_inobt_init_cursor() argument 482 struct xfs_mount *mp = pag_mount(pag); in xfs_inobt_init_cursor() 504 struct xfs_perag *pag, in xfs_finobt_init_cursor() argument 717 struct xfs_perag *pag) in xfs_inobt_max_size() argument 741 struct xfs_perag *pag, in xfs_finobt_count_blocks() argument 766 struct xfs_perag *pag, in xfs_finobt_read_blocks() argument 789 struct xfs_perag *pag, in xfs_finobt_calc_reserves() argument 797 if (!xfs_has_finobt(pag_mount(pag))) in xfs_finobt_calc_reserves() [all …]
|
| H A D | xfs_rmap_btree.c | 71 struct xfs_perag *pag = to_perag(cur->bc_group); in xfs_rmapbt_set_root() local 77 pag->pagf_rmap_level += inc; in xfs_rmapbt_set_root() 91 struct xfs_perag *pag = to_perag(cur->bc_group); in xfs_rmapbt_alloc_block() local 326 struct xfs_perag *pag = bp->b_pag; in xfs_rmapbt_verify() local 352 if (pag && xfs_perag_initialised_agf(pag)) { in xfs_rmapbt_verify() 353 unsigned int maxlevel = pag->pagf_rmap_level; in xfs_rmapbt_verify() 362 pag->pagf_repair_rmap_level); in xfs_rmapbt_verify() 536 struct xfs_perag *pag) in xfs_rmapbt_init_cursor() argument 646 struct xfs_perag *pag, in xfs_rmapbt_mem_cursor() argument 839 struct xfs_perag *pag, in xfs_rmapbt_calc_reserves() argument [all …]
|
| H A D | xfs_ialloc.h | 45 int xfs_difree(struct xfs_trans *tp, struct xfs_perag *pag, 53 struct xfs_perag *pag, 68 int xfs_read_agi(struct xfs_perag *pag, struct xfs_trans *tp, xfs_buf_flags_t flags, 70 int xfs_ialloc_read_agi(struct xfs_perag *pag, struct xfs_trans *tp, 100 xfs_failaddr_t xfs_inobt_check_irec(struct xfs_perag *pag, 115 int xfs_ialloc_check_shrink(struct xfs_perag *pag, struct xfs_trans *tp,
|
| H A D | xfs_refcount_btree.c | 44 struct xfs_perag *pag = agbp->b_pag; in xfs_refcountbt_set_root() local 50 pag->pagf_refcount_level += inc; in xfs_refcountbt_set_root() 71 args.pag = to_perag(cur->bc_group); in xfs_refcountbt_alloc_block() 210 struct xfs_perag *pag = bp->b_pag; in xfs_refcountbt_verify() local 224 if (pag && xfs_perag_initialised_agf(pag)) { in xfs_refcountbt_verify() 234 pag->pagf_repair_refcount_level); in xfs_refcountbt_verify() 360 struct xfs_perag *pag) in xfs_refcountbt_init_cursor() argument 364 ASSERT(pag_agno(pag) < mp->m_sb.sb_agcount); in xfs_refcountbt_init_cursor() 490 struct xfs_perag *pag, in xfs_refcountbt_calc_reserves() argument 503 error = xfs_alloc_read_agf(pag, tp, 0, &agbp); in xfs_refcountbt_calc_reserves() [all …]
|
| /linux-6.15/fs/xfs/ |
| H A D | xfs_filestream.c | 41 struct xfs_perag *pag = item->pag; in xfs_fstrm_free_func() local 45 xfs_perag_rele(pag); in xfs_fstrm_free_func() 64 struct xfs_perag *pag; in xfs_filestream_pick_ag() local 88 xfs_perag_rele(pag); in xfs_filestream_pick_ag() 100 max_pag = pag; in xfs_filestream_pick_ag() 152 max_pag = pag; in xfs_filestream_pick_ag() 161 pag = max_pag; in xfs_filestream_pick_ag() 165 args->pag = pag; in xfs_filestream_pick_ag() 224 pag = container_of(mru, struct xfs_fstrm_item, mru)->pag; in xfs_filestream_lookup_association() 254 args->pag = pag; in xfs_filestream_lookup_association() [all …]
|
| H A D | xfs_icache.c | 223 struct xfs_perag *pag) in xfs_blockgc_queue() argument 312 pag ? pag_group(pag) : NULL, in xfs_perag_grab_next_tag() 811 xfs_perag_put(pag); in xfs_iget() 830 xfs_perag_put(pag); in xfs_iget() 1290 xfs_perag_put(pag); in xfs_blockgc_set_iflag() 1327 xfs_perag_put(pag); in xfs_blockgc_clear_iflag() 1465 while ((pag = xfs_perag_next(mp, pag))) in xfs_blockgc_stop() 1481 while ((pag = xfs_perag_grab_next_tag(mp, pag, XFS_ICI_BLOCKGC_TAG))) in xfs_blockgc_start() 1605 while ((pag = xfs_perag_grab_next_tag(mp, pag, XFS_ICI_BLOCKGC_TAG))) in xfs_blockgc_flush_all() 1608 while ((pag = xfs_perag_grab_next_tag(mp, pag, XFS_ICI_BLOCKGC_TAG))) in xfs_blockgc_flush_all() [all …]
|
| H A D | xfs_iwalk.c | 56 struct xfs_perag *pag; member 99 struct xfs_perag *pag, in xfs_iwalk_ichunk_ra() argument 178 struct xfs_perag *pag = iwag->pag; in xfs_iwalk_ag_recs() local 210 xfs_agino_to_ino(pag, in xfs_iwalk_ag_recs() 264 struct xfs_perag *pag = iwag->pag; in xfs_iwalk_ag_start() local 400 struct xfs_perag *pag = iwag->pag; in xfs_iwalk_ag() local 554 while ((iwag->pag = xfs_perag_next_from(mp, iwag->pag, start_agno))) { in xfs_iwalk_args() 661 while ((pag = xfs_perag_next_from(mp, pag, start_agno))) { in xfs_iwalk_threaded() 675 iwag->pag = xfs_perag_hold(pag); in xfs_iwalk_threaded() 686 if (pag) in xfs_iwalk_threaded() [all …]
|
| H A D | xfs_discard.c | 180 struct xfs_perag *pag, in xfs_trim_gather_extents() argument 184 struct xfs_mount *mp = pag_mount(pag); in xfs_trim_gather_extents() 203 error = xfs_alloc_read_agf(pag, tp, 0, &agbp); in xfs_trim_gather_extents() 209 cur = xfs_bnobt_init_cursor(mp, tp, agbp, pag); in xfs_trim_gather_extents() 215 cur = xfs_cntbt_init_cursor(mp, tp, agbp, pag); in xfs_trim_gather_extents() 346 struct xfs_perag *pag, in xfs_trim_perag_extents() argument 353 .count = pag->pagf_longest, in xfs_trim_perag_extents() 412 struct xfs_perag *pag = NULL; in xfs_trim_datadev_extents() local 424 while ((pag = xfs_perag_next_range(mp, pag, start_agno, end_agno))) { in xfs_trim_datadev_extents() 427 if (pag_agno(pag) == end_agno) in xfs_trim_datadev_extents() [all …]
|
| /linux-6.15/fs/xfs/scrub/ |
| H A D | fscounters.c | 77 struct xfs_perag *pag = NULL; in xchk_fscount_warmup() local 80 while ((pag = xfs_perag_next(mp, pag))) { in xchk_fscount_warmup() 84 xfs_perag_initialised_agf(pag)) in xchk_fscount_warmup() 115 if (pag) in xchk_fscount_warmup() 116 xfs_perag_rele(pag); in xchk_fscount_warmup() 298 struct xfs_perag *pag = NULL; in xchk_fscount_aggregate_agcounts() local 308 while ((pag = xfs_perag_next(mp, pag))) { in xchk_fscount_aggregate_agcounts() 320 fsc->icount += pag->pagi_count; in xchk_fscount_aggregate_agcounts() 321 fsc->ifree += pag->pagi_freecount; in xchk_fscount_aggregate_agcounts() 342 if (pag) in xchk_fscount_aggregate_agcounts() [all …]
|
| H A D | agheader_repair.c | 204 struct xfs_perag *pag = sc->sa.pag; in xrep_agf_init_header() local 297 sc->sa.pag); in xrep_agf_calc_from_btrees() 317 struct xfs_perag *pag; in xrep_agf_commit_new() local 328 pag = sc->sa.pag; in xrep_agf_commit_new() 893 struct xfs_perag *pag = sc->sa.pag; in xrep_agi_init_header() local 1112 struct xfs_perag *pag, in xrep_iunlink_igrab() argument 1171 struct xfs_perag *pag = ragi->sc->sa.pag; in xrep_iunlink_mark_incore() local 1530 struct xfs_perag *pag = sc->sa.pag; in xrep_iunlink_relink_next() local 1588 struct xfs_perag *pag = sc->sa.pag; in xrep_iunlink_relink_prev() local 1685 struct xfs_perag *pag; in xrep_agi_commit_new() local [all …]
|
| H A D | repair.c | 272 pag->pagf_freeblks > xfs_ag_resv_needed(pag, type) + nr_blocks; in xrep_ag_has_space() 332 icount = pag->agino_max - pag->agino_min + 1; in xrep_calc_ag_resblks() 462 args.pag = sc->sa.pag; in xrep_fix_freelist() 885 sc->sa.pag); in xrep_ag_btcur_init() 887 sc->sa.pag); in xrep_ag_btcur_init() 904 sc->sa.pag); in xrep_ag_btcur_init() 922 struct xfs_perag *pag = sc->sa.pag; in xrep_reinit_pagf() local 926 ASSERT(pag); in xrep_reinit_pagf() 951 struct xfs_perag *pag = sc->sa.pag; in xrep_reinit_pagi() local 955 ASSERT(pag); in xrep_reinit_pagi() [all …]
|
| H A D | newbt.c | 62 free = sc->sa.pag->pagf_freeblks; in xrep_newbt_estimate_slack() 182 struct xfs_perag *pag, in xrep_newbt_add_blocks() argument 197 resv->pag = xfs_perag_hold(pag); in xrep_newbt_add_blocks() 211 xfs_perag_put(resv->pag); in xrep_newbt_add_blocks() 224 struct xfs_perag *pag, in xrep_newbt_add_extent() argument 265 ASSERT(sc->sa.pag != NULL); in xrep_newbt_alloc_ag_blocks() 352 struct xfs_perag *pag; in xrep_newbt_alloc_file_blocks() local 370 if (!pag) { in xrep_newbt_alloc_file_blocks() 380 xfs_perag_put(pag); in xrep_newbt_alloc_file_blocks() 487 xfs_perag_put(resv->pag); in xrep_newbt_free() [all …]
|
| H A D | alloc_repair.c | 536 struct xfs_perag *pag = sc->sa.pag; in xrep_abt_dispose_one() local 541 ASSERT(pag == resv->pag); in xrep_abt_dispose_one() 592 xfs_perag_put(resv->pag); in xrep_abt_dispose_reservations() 652 struct xfs_perag *pag = sc->sa.pag; in xrep_abt_reset_counters() local 690 pag->pagf_repair_bno_level = pag->pagf_bno_level; in xrep_abt_reset_counters() 691 pag->pagf_repair_cnt_level = pag->pagf_cnt_level; in xrep_abt_reset_counters() 709 struct xfs_perag *pag = sc->sa.pag; in xrep_abt_build_new_trees() local 809 pag->pagf_repair_bno_level = 0; in xrep_abt_build_new_trees() 810 pag->pagf_repair_cnt_level = 0; in xrep_abt_build_new_trees() 827 struct xfs_perag *pag = ra->sc->sa.pag; in xrep_abt_remove_old_trees() local [all …]
|
| H A D | health.c | 170 struct xfs_perag *pag = NULL; in xchk_mark_all_healthy() local 174 while ((pag = xfs_perag_next(mp, pag))) in xchk_mark_all_healthy() 175 xfs_group_mark_healthy(pag_group(pag), XFS_SICK_AG_INDIRECT); in xchk_mark_all_healthy() 194 struct xfs_perag *pag; in xchk_update_health() local 221 pag = xfs_perag_get(sc->mp, sc->sm->sm_agno); in xchk_update_health() 223 xfs_group_mark_corrupt(pag_group(pag), mask); in xchk_update_health() 225 xfs_group_mark_healthy(pag_group(pag), mask); in xchk_update_health() 226 xfs_perag_put(pag); in xchk_update_health() 315 struct xfs_perag *pag = NULL; in xchk_health_record() local 324 while ((pag = xfs_perag_next(mp, pag))) { in xchk_health_record() [all …]
|
| H A D | iscan.c | 61 struct xfs_perag *pag, in xchk_iscan_mask_skipino() argument 88 struct xfs_perag *pag, in xchk_iscan_find_next() argument 265 struct xfs_perag *pag, in xchk_iscan_read_agi() argument 326 if (!pag) in xchk_iscan_advance() 347 *pagp = pag; in xchk_iscan_advance() 358 xfs_perag_put(pag); in xchk_iscan_advance() 369 xfs_perag_put(pag); in xchk_iscan_advance() 453 xfs_perag_put(pag); in xchk_iscan_iget() 471 xfs_perag_put(pag); in xchk_iscan_iget() 485 xfs_perag_put(pag); in xchk_iscan_iget() [all …]
|
| H A D | reap.c | 268 struct xfs_perag *pag = sc->sa.pag; in xreap_agextent_binval() local 345 sc->sa.pag); in xreap_agextent_select() 595 ASSERT(!sc->sa.pag); in xreap_fsmeta_extent() 602 if (!sc->sa.pag) in xreap_fsmeta_extent() 652 xfs_perag_put(sc->sa.pag); in xreap_fsmeta_extent() 653 sc->sa.pag = NULL; in xreap_fsmeta_extent() 976 sc->sa.pag); in xreap_bmapi_select() 1047 struct xfs_perag *pag = sc->sa.pag; in xreap_bmapi_binval() local 1240 if (!sc->sa.pag) in xreap_ifork_extent() 1263 xfs_perag_put(sc->sa.pag); in xreap_ifork_extent() [all …]
|
| H A D | common.c | 568 ASSERT(!sa->pag); in xchk_ag_read_headers() 570 if (!sa->pag) in xchk_ag_read_headers() 613 sa->pag); in xchk_ag_btcur_init() 619 sa->pag); in xchk_ag_btcur_init() 673 if (sa->pag) { in xchk_ag_free() 675 sa->pag = NULL; in xchk_ag_free() 1015 xfs_perag_put(pag); in xchk_iget_agi() 1206 if (!pag) { in xchk_iget_for_scrubbing() 1213 xfs_perag_put(pag); in xchk_iget_for_scrubbing() 1521 struct xfs_perag *pag = sc->sa.pag; in xchk_inode_is_allocated() local [all …]
|