Home
last modified time | relevance | path

Searched refs:pag (Results 1 – 25 of 38) sorted by relevance

12

/Linux-v5.4/fs/xfs/libxfs/
Dxfs_ag_resv.c68 struct xfs_perag *pag, in xfs_ag_resv_critical() argument
76 avail = pag->pagf_freeblks - pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_critical()
77 orig = pag->pag_meta_resv.ar_asked; in xfs_ag_resv_critical()
80 avail = pag->pagf_freeblks + pag->pagf_flcount - in xfs_ag_resv_critical()
81 pag->pag_meta_resv.ar_reserved; in xfs_ag_resv_critical()
82 orig = pag->pag_rmapbt_resv.ar_asked; in xfs_ag_resv_critical()
89 trace_xfs_ag_resv_critical(pag, type, avail); in xfs_ag_resv_critical()
93 pag->pag_mount, XFS_ERRTAG_AG_RESV_CRITICAL); in xfs_ag_resv_critical()
102 struct xfs_perag *pag, in xfs_ag_resv_needed() argument
107 len = pag->pag_meta_resv.ar_reserved + pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_needed()
[all …]
Dxfs_ag_resv.h9 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 …]
Dxfs_health.h112 void xfs_ag_mark_sick(struct xfs_perag *pag, unsigned int mask);
113 void xfs_ag_mark_healthy(struct xfs_perag *pag, unsigned int mask);
114 void xfs_ag_measure_sickness(struct xfs_perag *pag, unsigned int *sick,
145 xfs_ag_has_sickness(struct xfs_perag *pag, unsigned int mask) in xfs_ag_has_sickness() argument
149 xfs_ag_measure_sickness(pag, &sick, &checked); in xfs_ag_has_sickness()
175 xfs_ag_is_healthy(struct xfs_perag *pag) in xfs_ag_is_healthy() argument
177 return !xfs_ag_has_sickness(pag, -1U); in xfs_ag_is_healthy()
187 void xfs_ag_geom_health(struct xfs_perag *pag, struct xfs_ag_geometry *ageo);
Dxfs_alloc.c397 ASSERT(args->pag->pagf_freeblks + args->pag->pagf_flcount >= in xfs_alloc_fix_len()
676 struct xfs_perag *pag, in xfs_alloc_update_counters() argument
682 pag->pagf_freeblks += len; in xfs_alloc_update_counters()
855 error = xfs_alloc_update_counters(args->tp, args->pag, in xfs_alloc_ag_vextent()
865 xfs_ag_resv_alloc_extent(args->pag, args->resv, args); in xfs_alloc_ag_vextent()
1420 xfs_extent_busy_flush(args->mp, args->pag, busy_gen); in xfs_alloc_ag_vextent_near()
1569 args->pag, busy_gen); in xfs_alloc_ag_vextent_size()
1638 xfs_extent_busy_flush(args->mp, args->pag, busy_gen); in xfs_alloc_ag_vextent_size()
1696 struct xfs_perag *pag; in xfs_free_ag_extent() local
1919 pag = xfs_perag_get(mp, agno); in xfs_free_ag_extent()
[all …]
Dxfs_ialloc.c620 struct xfs_perag *pag; in xfs_ialloc_ag_alloc() local
882 pag = xfs_perag_get(args.mp, agno); in xfs_ialloc_ag_alloc()
883 pag->pagi_freecount += newlen; in xfs_ialloc_ag_alloc()
884 pag->pagi_count += newlen; in xfs_ialloc_ag_alloc()
885 xfs_perag_put(pag); in xfs_ialloc_ag_alloc()
934 xfs_perag_t *pag; /* per allocation group data */ in xfs_ialloc_ag_select() local
965 pag = xfs_perag_get(mp, agno); in xfs_ialloc_ag_select()
966 if (!pag->pagi_inodeok) { in xfs_ialloc_ag_select()
971 if (!pag->pagi_init) { in xfs_ialloc_ag_select()
977 if (pag->pagi_freecount) { in xfs_ialloc_ag_select()
[all …]
Dxfs_sb.c42 struct xfs_perag *pag; in xfs_perag_get() local
46 pag = radix_tree_lookup(&mp->m_perag_tree, agno); in xfs_perag_get()
47 if (pag) { in xfs_perag_get()
48 ASSERT(atomic_read(&pag->pag_ref) >= 0); in xfs_perag_get()
49 ref = atomic_inc_return(&pag->pag_ref); in xfs_perag_get()
53 return pag; in xfs_perag_get()
65 struct xfs_perag *pag; in xfs_perag_get_tag() local
71 (void **)&pag, first, 1, tag); in xfs_perag_get_tag()
76 ref = atomic_inc_return(&pag->pag_ref); in xfs_perag_get_tag()
78 trace_xfs_perag_get_tag(mp, pag->pag_agno, ref, _RET_IP_); in xfs_perag_get_tag()
[all …]
Dxfs_alloc_btree.c42 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_allocbt_set_root() local
48 pag->pagf_levels[btnum] += inc; in xfs_allocbt_set_root()
49 xfs_perag_put(pag); in xfs_allocbt_set_root()
118 struct xfs_perag *pag; in xfs_allocbt_update_lastrec() local
162 pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_allocbt_update_lastrec()
163 pag->pagf_longest = be32_to_cpu(len); in xfs_allocbt_update_lastrec()
164 xfs_perag_put(pag); in xfs_allocbt_update_lastrec()
296 struct xfs_perag *pag = bp->b_pag; in xfs_allocbt_verify() local
322 if (pag && pag->pagf_init) { in xfs_allocbt_verify()
323 if (level >= pag->pagf_levels[btnum]) in xfs_allocbt_verify()
Dxfs_refcount_btree.c40 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_refcountbt_set_root() local
46 pag->pagf_refcount_level += inc; in xfs_refcountbt_set_root()
47 xfs_perag_put(pag); in xfs_refcountbt_set_root()
206 struct xfs_perag *pag = bp->b_pag; in xfs_refcountbt_verify() local
220 if (pag && pag->pagf_init) { in xfs_refcountbt_verify()
221 if (level >= pag->pagf_refcount_level) in xfs_refcountbt_verify()
Dxfs_ag.c549 struct xfs_perag *pag; in xfs_ag_get_geometry() local
563 pag = xfs_perag_get(mp, agno); in xfs_ag_get_geometry()
575 freeblks = pag->pagf_freeblks + in xfs_ag_get_geometry()
576 pag->pagf_flcount + in xfs_ag_get_geometry()
577 pag->pagf_btreeblks - in xfs_ag_get_geometry()
578 xfs_ag_resv_needed(pag, XFS_AG_RESV_NONE); in xfs_ag_get_geometry()
580 xfs_ag_geom_health(pag, ageo); in xfs_ag_get_geometry()
583 xfs_perag_put(pag); in xfs_ag_get_geometry()
Dxfs_rmap_btree.c67 struct xfs_perag *pag = xfs_perag_get(cur->bc_mp, seqno); in xfs_rmapbt_set_root() local
73 pag->pagf_levels[btnum] += inc; in xfs_rmapbt_set_root()
74 xfs_perag_put(pag); in xfs_rmapbt_set_root()
293 struct xfs_perag *pag = bp->b_pag; in xfs_rmapbt_verify() local
319 if (pag && pag->pagf_init) { in xfs_rmapbt_verify()
320 if (level >= pag->pagf_levels[XFS_BTNUM_RMAPi]) in xfs_rmapbt_verify()
Dxfs_alloc.h56 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);
/Linux-v5.4/fs/xfs/
Dxfs_extent_busy.c32 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 …]
Dxfs_icache.c181 struct xfs_perag *pag) in xfs_perag_set_reclaim_tag() argument
183 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_set_reclaim_tag()
185 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_set_reclaim_tag()
186 if (pag->pag_ici_reclaimable++) in xfs_perag_set_reclaim_tag()
191 radix_tree_tag_set(&mp->m_perag_tree, pag->pag_agno, in xfs_perag_set_reclaim_tag()
198 trace_xfs_perag_set_reclaim(mp, pag->pag_agno, -1, _RET_IP_); in xfs_perag_set_reclaim_tag()
203 struct xfs_perag *pag) in xfs_perag_clear_reclaim_tag() argument
205 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_clear_reclaim_tag()
207 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_clear_reclaim_tag()
208 if (--pag->pag_ici_reclaimable) in xfs_perag_clear_reclaim_tag()
[all …]
Dxfs_filestream.c74 struct xfs_perag *pag; in xfs_filestream_peek_ag() local
77 pag = xfs_perag_get(mp, agno); in xfs_filestream_peek_ag()
78 ret = atomic_read(&pag->pagf_fstrms); in xfs_filestream_peek_ag()
79 xfs_perag_put(pag); in xfs_filestream_peek_ag()
88 struct xfs_perag *pag; in xfs_filestream_get_ag() local
91 pag = xfs_perag_get(mp, agno); in xfs_filestream_get_ag()
92 ret = atomic_inc_return(&pag->pagf_fstrms); in xfs_filestream_get_ag()
93 xfs_perag_put(pag); in xfs_filestream_get_ag()
102 struct xfs_perag *pag; in xfs_filestream_put_ag() local
104 pag = xfs_perag_get(mp, agno); in xfs_filestream_put_ag()
[all …]
Dxfs_health.c27 struct xfs_perag *pag; in xfs_health_unmount() local
38 pag = xfs_perag_get(mp, agno); in xfs_health_unmount()
39 xfs_ag_measure_sickness(pag, &sick, &checked); in xfs_health_unmount()
44 xfs_perag_put(pag); in xfs_health_unmount()
181 struct xfs_perag *pag, in xfs_ag_mark_sick() argument
185 trace_xfs_ag_mark_sick(pag->pag_mount, pag->pag_agno, mask); in xfs_ag_mark_sick()
187 spin_lock(&pag->pag_state_lock); in xfs_ag_mark_sick()
188 pag->pag_sick |= mask; in xfs_ag_mark_sick()
189 pag->pag_checked |= mask; in xfs_ag_mark_sick()
190 spin_unlock(&pag->pag_state_lock); in xfs_ag_mark_sick()
[all …]
Dxfs_mount.c127 struct xfs_perag *pag = container_of(head, struct xfs_perag, rcu_head); in __xfs_free_perag() local
129 ASSERT(atomic_read(&pag->pag_ref) == 0); in __xfs_free_perag()
130 kmem_free(pag); in __xfs_free_perag()
141 struct xfs_perag *pag; in xfs_free_perag() local
145 pag = radix_tree_delete(&mp->m_perag_tree, agno); in xfs_free_perag()
147 ASSERT(pag); in xfs_free_perag()
148 ASSERT(atomic_read(&pag->pag_ref) == 0); in xfs_free_perag()
149 xfs_iunlink_destroy(pag); in xfs_free_perag()
150 xfs_buf_hash_destroy(pag); in xfs_free_perag()
151 mutex_destroy(&pag->pag_ici_reclaim_lock); in xfs_free_perag()
[all …]
Dxfs_fsops.c147 struct xfs_perag *pag; in xfs_growfs_data_private() local
149 pag = xfs_perag_get(mp, id.agno); in xfs_growfs_data_private()
150 error = xfs_ag_resv_free(pag); in xfs_growfs_data_private()
151 xfs_perag_put(pag); in xfs_growfs_data_private()
527 struct xfs_perag *pag; in xfs_fs_reserve_ag_blocks() local
533 pag = xfs_perag_get(mp, agno); in xfs_fs_reserve_ag_blocks()
534 err2 = xfs_ag_resv_init(pag, NULL); in xfs_fs_reserve_ag_blocks()
535 xfs_perag_put(pag); in xfs_fs_reserve_ag_blocks()
557 struct xfs_perag *pag; in xfs_fs_unreserve_ag_blocks() local
562 pag = xfs_perag_get(mp, agno); in xfs_fs_unreserve_ag_blocks()
[all …]
Dxfs_buf.c536 struct xfs_perag *pag) in xfs_buf_hash_init() argument
538 spin_lock_init(&pag->pag_buf_lock); in xfs_buf_hash_init()
539 return rhashtable_init(&pag->pag_buf_hash, &xfs_buf_hash_params); in xfs_buf_hash_init()
544 struct xfs_perag *pag) in xfs_buf_hash_destroy() argument
546 rhashtable_destroy(&pag->pag_buf_hash); in xfs_buf_hash_destroy()
576 struct xfs_perag *pag; in xfs_buf_find() local
604 pag = xfs_perag_get(btp->bt_mount, in xfs_buf_find()
607 spin_lock(&pag->pag_buf_lock); in xfs_buf_find()
608 bp = rhashtable_lookup_fast(&pag->pag_buf_hash, &cmap, in xfs_buf_find()
618 spin_unlock(&pag->pag_buf_lock); in xfs_buf_find()
[all …]
Dxfs_inode.c1966 struct xfs_perag *pag, in xfs_iunlink_lookup_backref() argument
1971 iu = rhashtable_lookup_fast(&pag->pagi_unlinked_hash, &agino, in xfs_iunlink_lookup_backref()
1983 struct xfs_perag *pag, in xfs_iunlink_insert_backref() argument
1988 error = rhashtable_insert_fast(&pag->pagi_unlinked_hash, in xfs_iunlink_insert_backref()
2012 struct xfs_perag *pag, in xfs_iunlink_add_backref() argument
2018 if (XFS_TEST_ERROR(false, pag->pag_mount, XFS_ERRTAG_IUNLINK_FALLBACK)) in xfs_iunlink_add_backref()
2025 return xfs_iunlink_insert_backref(pag, iu); in xfs_iunlink_add_backref()
2035 struct xfs_perag *pag, in xfs_iunlink_change_backref() argument
2043 iu = rhashtable_lookup_fast(&pag->pagi_unlinked_hash, &agino, in xfs_iunlink_change_backref()
2056 error = rhashtable_remove_fast(&pag->pagi_unlinked_hash, in xfs_iunlink_change_backref()
[all …]
Dxfs_mount.h417 struct xfs_perag *pag, in xfs_perag_resv() argument
422 return &pag->pag_meta_resv; in xfs_perag_resv()
424 return &pag->pag_rmapbt_resv; in xfs_perag_resv()
430 int xfs_buf_hash_init(xfs_perag_t *pag);
431 void xfs_buf_hash_destroy(xfs_perag_t *pag);
/Linux-v5.4/fs/xfs/scrub/
Dfscounters.c69 struct xfs_perag *pag = NULL; in xchk_fscount_warmup() local
74 pag = xfs_perag_get(mp, agno); in xchk_fscount_warmup()
76 if (pag->pagi_init && pag->pagf_init) in xchk_fscount_warmup()
95 if (!pag->pagi_init || !pag->pagf_init) in xchk_fscount_warmup()
103 xfs_perag_put(pag); in xchk_fscount_warmup()
104 pag = NULL; in xchk_fscount_warmup()
115 if (pag) in xchk_fscount_warmup()
116 xfs_perag_put(pag); in xchk_fscount_warmup()
162 struct xfs_perag *pag; in xchk_fscount_aggregate_agcounts() local
173 pag = xfs_perag_get(mp, agno); in xchk_fscount_aggregate_agcounts()
[all …]
Dhealth.c129 struct xfs_perag *pag; in xchk_update_health() local
138 pag = xfs_perag_get(sc->mp, sc->sm->sm_agno); in xchk_update_health()
140 xfs_ag_mark_sick(pag, sc->sick_mask); in xchk_update_health()
142 xfs_ag_mark_healthy(pag, sc->sick_mask); in xchk_update_health()
143 xfs_perag_put(pag); in xchk_update_health()
175 struct xfs_perag *pag, in xchk_ag_btree_healthy_enough() argument
223 if (xfs_ag_has_sickness(pag, mask)) { in xchk_ag_btree_healthy_enough()
Dagheader_repair.c199 ASSERT(sc->sa.pag->pagf_init); in xrep_agf_init_header()
200 sc->sa.pag->pagf_init = 0; in xrep_agf_init_header()
304 struct xfs_perag *pag; in xrep_agf_commit_new() local
315 pag = sc->sa.pag; in xrep_agf_commit_new()
316 pag->pagf_btreeblks = be32_to_cpu(agf->agf_btreeblks); in xrep_agf_commit_new()
317 pag->pagf_freeblks = be32_to_cpu(agf->agf_freeblks); in xrep_agf_commit_new()
318 pag->pagf_longest = be32_to_cpu(agf->agf_longest); in xrep_agf_commit_new()
319 pag->pagf_levels[XFS_BTNUM_BNOi] = in xrep_agf_commit_new()
321 pag->pagf_levels[XFS_BTNUM_CNTi] = in xrep_agf_commit_new()
323 pag->pagf_levels[XFS_BTNUM_RMAPi] = in xrep_agf_commit_new()
[all …]
Drepair.c160 struct xfs_perag *pag, in xrep_ag_has_space() argument
164 return !xfs_ag_resv_critical(pag, XFS_AG_RESV_RMAPBT) && in xrep_ag_has_space()
165 !xfs_ag_resv_critical(pag, XFS_AG_RESV_METADATA) && in xrep_ag_has_space()
166 pag->pagf_freeblks > xfs_ag_resv_needed(pag, type) + nr_blocks; in xrep_ag_has_space()
180 struct xfs_perag *pag; in xrep_calc_ag_resblks() local
195 pag = xfs_perag_get(mp, sm->sm_agno); in xrep_calc_ag_resblks()
196 if (pag->pagi_init) { in xrep_calc_ag_resblks()
198 icount = pag->pagi_count; in xrep_calc_ag_resblks()
203 icount = pag->pagi_count; in xrep_calc_ag_resblks()
216 xfs_perag_put(pag); in xrep_calc_ag_resblks()
[all …]
Dcommon.c465 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_BNO)) { in xchk_ag_btcur_init()
474 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_CNT)) { in xchk_ag_btcur_init()
484 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_INO)) { in xchk_ag_btcur_init()
493 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_FINO)) { in xchk_ag_btcur_init()
502 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_RMAP)) { in xchk_ag_btcur_init()
511 xchk_ag_btree_healthy_enough(sc, sa->pag, XFS_BTNUM_REFC)) { in xchk_ag_btcur_init()
542 if (sa->pag) { in xchk_ag_free()
543 xfs_perag_put(sa->pag); in xchk_ag_free()
544 sa->pag = NULL; in xchk_ag_free()
582 if (!sa->pag) in xchk_perag_get()
[all …]

12