Home
last modified time | relevance | path

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

12

/Linux-v4.19/fs/xfs/libxfs/
Dxfs_ag_resv.c76 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 …]
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_alloc.c401 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 …]
Dxfs_ialloc.c637 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 …]
Dxfs_alloc_btree.c43 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 …]
Dxfs_sb.c48 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 …]
Dxfs_refcount_btree.c42 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()
Dxfs_rmap_btree.c71 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()
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);
Dxfs_sb.h22 extern void xfs_perag_put(struct xfs_perag *pag);
/Linux-v4.19/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.c178 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 …]
Dxfs_filestream.c77 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 …]
Dxfs_mount.c130 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 …]
Dxfs_fsops.c152 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 …]
Dxfs_buf.c514 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 …]
Dxfs_mount.h392 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);
Dxfs_discard.c35 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()
Dxfs_super.c623 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()
Dxfs_extent_busy.h54 xfs_extent_busy_flush(struct xfs_mount *mp, struct xfs_perag *pag,
/Linux-v4.19/fs/xfs/scrub/
Dagheader_repair.c204 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 …]
Drepair.c176 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 …]
Dcommon.c531 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()
Drepair.h21 bool xrep_ag_has_space(struct xfs_perag *pag, xfs_extlen_t nr_blocks,
Dscrub.h40 struct xfs_perag *pag; member

12