/Linux-v4.19/fs/xfs/libxfs/ |
D | xfs_ag_resv.c | 76 struct xfs_perag *pag, in xfs_ag_resv_critical() argument 84 avail = pag->pagf_freeblks - pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_critical() 85 orig = pag->pag_meta_resv.ar_asked; in xfs_ag_resv_critical() 88 avail = pag->pagf_freeblks + pag->pagf_flcount - in xfs_ag_resv_critical() 89 pag->pag_meta_resv.ar_reserved; in xfs_ag_resv_critical() 90 orig = pag->pag_rmapbt_resv.ar_asked; in xfs_ag_resv_critical() 97 trace_xfs_ag_resv_critical(pag, type, avail); in xfs_ag_resv_critical() 101 pag->pag_mount, XFS_ERRTAG_AG_RESV_CRITICAL); in xfs_ag_resv_critical() 110 struct xfs_perag *pag, in xfs_ag_resv_needed() argument 115 len = pag->pag_meta_resv.ar_reserved + pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_needed() [all …]
|
D | xfs_ag_resv.h | 9 int 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, 32 struct xfs_perag *pag; in xfs_ag_resv_rmapbt_alloc() local 35 pag = xfs_perag_get(mp, agno); in xfs_ag_resv_rmapbt_alloc() 36 xfs_ag_resv_alloc_extent(pag, XFS_AG_RESV_RMAPBT, &args); in xfs_ag_resv_rmapbt_alloc() 37 xfs_perag_put(pag); in xfs_ag_resv_rmapbt_alloc() [all …]
|
D | xfs_alloc.c | 401 ASSERT(args->pag->pagf_freeblks + args->pag->pagf_flcount >= in xfs_alloc_fix_len() 679 struct xfs_perag *pag, in xfs_alloc_update_counters() argument 685 pag->pagf_freeblks += len; in xfs_alloc_update_counters() 757 error = xfs_alloc_update_counters(args->tp, args->pag, in xfs_alloc_ag_vextent() 767 xfs_ag_resv_alloc_extent(args->pag, args->resv, args); in xfs_alloc_ag_vextent() 1322 xfs_extent_busy_flush(args->mp, args->pag, busy_gen); in xfs_alloc_ag_vextent_near() 1471 args->pag, busy_gen); in xfs_alloc_ag_vextent_size() 1540 xfs_extent_busy_flush(args->mp, args->pag, busy_gen); in xfs_alloc_ag_vextent_size() 1718 xfs_perag_t *pag; /* per allocation group data */ in xfs_free_ag_extent() local 1929 pag = xfs_perag_get(mp, agno); in xfs_free_ag_extent() [all …]
|
D | xfs_ialloc.c | 637 struct xfs_perag *pag; in xfs_ialloc_ag_alloc() local 898 pag = xfs_perag_get(args.mp, agno); in xfs_ialloc_ag_alloc() 899 pag->pagi_freecount += newlen; in xfs_ialloc_ag_alloc() 900 pag->pagi_count += newlen; in xfs_ialloc_ag_alloc() 901 xfs_perag_put(pag); in xfs_ialloc_ag_alloc() 950 xfs_perag_t *pag; /* per allocation group data */ in xfs_ialloc_ag_select() local 981 pag = xfs_perag_get(mp, agno); in xfs_ialloc_ag_select() 982 if (!pag->pagi_inodeok) { in xfs_ialloc_ag_select() 987 if (!pag->pagi_init) { in xfs_ialloc_ag_select() 993 if (pag->pagi_freecount) { in xfs_ialloc_ag_select() [all …]
|
D | xfs_alloc_btree.c | 43 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_allocbt_set_root() local 49 pag->pagf_levels[btnum] += inc; in xfs_allocbt_set_root() 50 xfs_perag_put(pag); in xfs_allocbt_set_root() 119 struct xfs_perag *pag; in xfs_allocbt_update_lastrec() local 163 pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_allocbt_update_lastrec() 164 pag->pagf_longest = be32_to_cpu(len); in xfs_allocbt_update_lastrec() 165 xfs_perag_put(pag); in xfs_allocbt_update_lastrec() 297 struct xfs_perag *pag = bp->b_pag; in xfs_allocbt_verify() local 321 if (pag && pag->pagf_init) { in xfs_allocbt_verify() 322 if (level >= pag->pagf_levels[XFS_BTNUM_BNOi]) in xfs_allocbt_verify() [all …]
|
D | xfs_sb.c | 48 struct xfs_perag *pag; in xfs_perag_get() local 52 pag = radix_tree_lookup(&mp->m_perag_tree, agno); in xfs_perag_get() 53 if (pag) { in xfs_perag_get() 54 ASSERT(atomic_read(&pag->pag_ref) >= 0); in xfs_perag_get() 55 ref = atomic_inc_return(&pag->pag_ref); in xfs_perag_get() 59 return pag; in xfs_perag_get() 71 struct xfs_perag *pag; in xfs_perag_get_tag() local 77 (void **)&pag, first, 1, tag); in xfs_perag_get_tag() 82 ref = atomic_inc_return(&pag->pag_ref); in xfs_perag_get_tag() 84 trace_xfs_perag_get_tag(mp, pag->pag_agno, ref, _RET_IP_); in xfs_perag_get_tag() [all …]
|
D | xfs_refcount_btree.c | 42 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_refcountbt_set_root() local 48 pag->pagf_refcount_level += inc; in xfs_refcountbt_set_root() 49 xfs_perag_put(pag); in xfs_refcountbt_set_root() 210 struct xfs_perag *pag = bp->b_pag; in xfs_refcountbt_verify() local 224 if (pag && pag->pagf_init) { in xfs_refcountbt_verify() 225 if (level >= pag->pagf_refcount_level) in xfs_refcountbt_verify()
|
D | xfs_rmap_btree.c | 71 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_rmapbt_set_root() local 77 pag->pagf_levels[btnum] += inc; in xfs_rmapbt_set_root() 78 xfs_perag_put(pag); in xfs_rmapbt_set_root() 297 struct xfs_perag *pag = bp->b_pag; in xfs_rmapbt_verify() local 323 if (pag && pag->pagf_init) { in xfs_rmapbt_verify() 324 if (level >= pag->pagf_levels[XFS_BTNUM_RMAPi]) in xfs_rmapbt_verify()
|
D | xfs_alloc.h | 56 struct xfs_perag *pag; /* per-ag struct for this agno */ member 106 xfs_extlen_t xfs_alloc_longest_free_extent(struct xfs_perag *pag, 109 struct xfs_perag *pag);
|
D | xfs_sb.h | 22 extern void xfs_perag_put(struct xfs_perag *pag);
|
/Linux-v4.19/fs/xfs/ |
D | xfs_extent_busy.c | 32 struct xfs_perag *pag; in xfs_extent_busy_insert() local 46 pag = xfs_perag_get(tp->t_mountp, new->agno); in xfs_extent_busy_insert() 47 spin_lock(&pag->pagb_lock); in xfs_extent_busy_insert() 48 rbp = &pag->pagb_tree.rb_node; in xfs_extent_busy_insert() 65 rb_insert_color(&new->rb_node, &pag->pagb_tree); in xfs_extent_busy_insert() 68 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_insert() 69 xfs_perag_put(pag); in xfs_extent_busy_insert() 88 struct xfs_perag *pag; in xfs_extent_busy_search() local 93 pag = xfs_perag_get(mp, agno); in xfs_extent_busy_search() 94 spin_lock(&pag->pagb_lock); in xfs_extent_busy_search() [all …]
|
D | xfs_icache.c | 178 struct xfs_perag *pag) in xfs_perag_set_reclaim_tag() argument 180 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_set_reclaim_tag() 182 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_set_reclaim_tag() 183 if (pag->pag_ici_reclaimable++) in xfs_perag_set_reclaim_tag() 188 radix_tree_tag_set(&mp->m_perag_tree, pag->pag_agno, in xfs_perag_set_reclaim_tag() 195 trace_xfs_perag_set_reclaim(mp, pag->pag_agno, -1, _RET_IP_); in xfs_perag_set_reclaim_tag() 200 struct xfs_perag *pag) in xfs_perag_clear_reclaim_tag() argument 202 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_clear_reclaim_tag() 204 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_clear_reclaim_tag() 205 if (--pag->pag_ici_reclaimable) in xfs_perag_clear_reclaim_tag() [all …]
|
D | xfs_filestream.c | 77 struct xfs_perag *pag; in xfs_filestream_peek_ag() local 80 pag = xfs_perag_get(mp, agno); in xfs_filestream_peek_ag() 81 ret = atomic_read(&pag->pagf_fstrms); in xfs_filestream_peek_ag() 82 xfs_perag_put(pag); in xfs_filestream_peek_ag() 91 struct xfs_perag *pag; in xfs_filestream_get_ag() local 94 pag = xfs_perag_get(mp, agno); in xfs_filestream_get_ag() 95 ret = atomic_inc_return(&pag->pagf_fstrms); in xfs_filestream_get_ag() 96 xfs_perag_put(pag); in xfs_filestream_get_ag() 105 struct xfs_perag *pag; in xfs_filestream_put_ag() local 107 pag = xfs_perag_get(mp, agno); in xfs_filestream_put_ag() [all …]
|
D | xfs_mount.c | 130 struct xfs_perag *pag = container_of(head, struct xfs_perag, rcu_head); in __xfs_free_perag() local 132 ASSERT(atomic_read(&pag->pag_ref) == 0); in __xfs_free_perag() 133 kmem_free(pag); in __xfs_free_perag() 144 struct xfs_perag *pag; in xfs_free_perag() local 148 pag = radix_tree_delete(&mp->m_perag_tree, agno); in xfs_free_perag() 150 ASSERT(pag); in xfs_free_perag() 151 ASSERT(atomic_read(&pag->pag_ref) == 0); in xfs_free_perag() 152 xfs_buf_hash_destroy(pag); in xfs_free_perag() 153 mutex_destroy(&pag->pag_ici_reclaim_lock); in xfs_free_perag() 154 call_rcu(&pag->rcu_head, __xfs_free_perag); in xfs_free_perag() [all …]
|
D | xfs_fsops.c | 152 struct xfs_perag *pag; in xfs_growfs_data_private() local 154 pag = xfs_perag_get(mp, id.agno); in xfs_growfs_data_private() 155 error = xfs_ag_resv_free(pag); in xfs_growfs_data_private() 156 xfs_perag_put(pag); in xfs_growfs_data_private() 533 struct xfs_perag *pag; in xfs_fs_reserve_ag_blocks() local 538 pag = xfs_perag_get(mp, agno); in xfs_fs_reserve_ag_blocks() 539 err2 = xfs_ag_resv_init(pag, NULL); in xfs_fs_reserve_ag_blocks() 540 xfs_perag_put(pag); in xfs_fs_reserve_ag_blocks() 562 struct xfs_perag *pag; in xfs_fs_unreserve_ag_blocks() local 567 pag = xfs_perag_get(mp, agno); in xfs_fs_unreserve_ag_blocks() [all …]
|
D | xfs_buf.c | 514 struct xfs_perag *pag) in xfs_buf_hash_init() argument 516 spin_lock_init(&pag->pag_buf_lock); in xfs_buf_hash_init() 517 return rhashtable_init(&pag->pag_buf_hash, &xfs_buf_hash_params); in xfs_buf_hash_init() 522 struct xfs_perag *pag) in xfs_buf_hash_destroy() argument 524 rhashtable_destroy(&pag->pag_buf_hash); in xfs_buf_hash_destroy() 554 struct xfs_perag *pag; in xfs_buf_find() local 582 pag = xfs_perag_get(btp->bt_mount, in xfs_buf_find() 585 spin_lock(&pag->pag_buf_lock); in xfs_buf_find() 586 bp = rhashtable_lookup_fast(&pag->pag_buf_hash, &cmap, in xfs_buf_find() 596 spin_unlock(&pag->pag_buf_lock); in xfs_buf_find() [all …]
|
D | xfs_mount.h | 392 struct xfs_perag *pag, in xfs_perag_resv() argument 397 return &pag->pag_meta_resv; in xfs_perag_resv() 399 return &pag->pag_rmapbt_resv; in xfs_perag_resv() 405 int xfs_buf_hash_init(xfs_perag_t *pag); 406 void xfs_buf_hash_destroy(xfs_perag_t *pag);
|
D | xfs_discard.c | 35 struct xfs_perag *pag; in xfs_trim_extents() local 39 pag = xfs_perag_get(mp, agno); in xfs_trim_extents() 134 xfs_perag_put(pag); in xfs_trim_extents()
|
D | xfs_super.c | 623 struct xfs_perag *pag; in xfs_set_inode_alloc() local 627 pag = xfs_perag_get(mp, index); in xfs_set_inode_alloc() 631 pag->pagi_inodeok = 0; in xfs_set_inode_alloc() 632 pag->pagf_metadata = 0; in xfs_set_inode_alloc() 634 pag->pagi_inodeok = 1; in xfs_set_inode_alloc() 637 pag->pagf_metadata = 1; in xfs_set_inode_alloc() 639 pag->pagf_metadata = 0; in xfs_set_inode_alloc() 642 pag->pagi_inodeok = 1; in xfs_set_inode_alloc() 643 pag->pagf_metadata = 0; in xfs_set_inode_alloc() 646 xfs_perag_put(pag); in xfs_set_inode_alloc()
|
D | xfs_extent_busy.h | 54 xfs_extent_busy_flush(struct xfs_mount *mp, struct xfs_perag *pag,
|
/Linux-v4.19/fs/xfs/scrub/ |
D | agheader_repair.c | 204 ASSERT(sc->sa.pag->pagf_init); in xrep_agf_init_header() 205 sc->sa.pag->pagf_init = 0; in xrep_agf_init_header() 309 struct xfs_perag *pag; in xrep_agf_commit_new() local 320 pag = sc->sa.pag; in xrep_agf_commit_new() 321 pag->pagf_btreeblks = be32_to_cpu(agf->agf_btreeblks); in xrep_agf_commit_new() 322 pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks); in xrep_agf_commit_new() 323 pag->pagf_longest = be32_to_cpu(agf->agf_longest); in xrep_agf_commit_new() 324 pag->pagf_levels[XFS_BTNUM_BNOi] = in xrep_agf_commit_new() 326 pag->pagf_levels[XFS_BTNUM_CNTi] = in xrep_agf_commit_new() 328 pag->pagf_levels[XFS_BTNUM_RMAPi] = in xrep_agf_commit_new() [all …]
|
D | repair.c | 176 struct xfs_perag *pag, in xrep_ag_has_space() argument 180 return !xfs_ag_resv_critical(pag, XFS_AG_RESV_RMAPBT) && in xrep_ag_has_space() 181 !xfs_ag_resv_critical(pag, XFS_AG_RESV_METADATA) && in xrep_ag_has_space() 182 pag->pagf_freeblks > xfs_ag_resv_needed(pag, type) + nr_blocks; in xrep_ag_has_space() 196 struct xfs_perag *pag; in xrep_calc_ag_resblks() local 211 pag = xfs_perag_get(mp, sm->sm_agno); in xrep_calc_ag_resblks() 212 if (pag->pagi_init) { in xrep_calc_ag_resblks() 214 icount = pag->pagi_count; in xrep_calc_ag_resblks() 219 icount = pag->pagi_count; in xrep_calc_ag_resblks() 232 xfs_perag_put(pag); in xrep_calc_ag_resblks() [all …]
|
D | common.c | 531 if (sa->pag) { in xchk_ag_free() 532 xfs_perag_put(sa->pag); in xchk_ag_free() 533 sa->pag = NULL; in xchk_ag_free() 571 if (!sa->pag) in xchk_perag_get() 572 sa->pag = xfs_perag_get(mp, sa->agno); in xchk_perag_get()
|
D | repair.h | 21 bool xrep_ag_has_space(struct xfs_perag *pag, xfs_extlen_t nr_blocks,
|
D | scrub.h | 40 struct xfs_perag *pag; member
|