/kernel/linux/linux-6.6/fs/xfs/libxfs/ |
H A D | xfs_ag.h | 125 static inline bool xfs_perag_ ## name (struct xfs_perag *pag) \ 127 return test_bit(XFS_AGSTATE_ ## NAME, &pag->pag_opstate); \ 145 struct xfs_perag *xfs_perag_hold(struct xfs_perag *pag); 146 void xfs_perag_put(struct xfs_perag *pag); 152 void xfs_perag_rele(struct xfs_perag *pag); 162 xfs_verify_agbno(struct xfs_perag *pag, xfs_agblock_t agbno) in xfs_verify_agbno() argument 164 if (agbno >= pag->block_count) in xfs_verify_agbno() 166 if (agbno <= pag->min_block) in xfs_verify_agbno() 173 struct xfs_perag *pag, in xfs_verify_agbext() 180 if (!xfs_verify_agbno(pag, agbn in xfs_verify_agbext() 172 xfs_verify_agbext( struct xfs_perag *pag, xfs_agblock_t agbno, xfs_agblock_t len) xfs_verify_agbext() argument 191 xfs_verify_agino(struct xfs_perag *pag, xfs_agino_t agino) xfs_verify_agino() argument 205 xfs_verify_agino_or_null(struct xfs_perag *pag, xfs_agino_t agino) xfs_verify_agino_or_null() argument 223 xfs_perag_next( struct xfs_perag *pag, xfs_agnumber_t *agno, xfs_agnumber_t end_agno) xfs_perag_next() argument 261 xfs_perag_next_wrap( struct xfs_perag *pag, xfs_agnumber_t *agno, xfs_agnumber_t stop_agno, xfs_agnumber_t restart_agno, xfs_agnumber_t wrap_agno) xfs_perag_next_wrap() argument [all...] |
H A D | xfs_ag_resv.c | 70 struct xfs_perag *pag, in xfs_ag_resv_critical() 78 avail = pag->pagf_freeblks - pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_critical() 79 orig = pag->pag_meta_resv.ar_asked; in xfs_ag_resv_critical() 82 avail = pag->pagf_freeblks + pag->pagf_flcount - in xfs_ag_resv_critical() 83 pag->pag_meta_resv.ar_reserved; in xfs_ag_resv_critical() 84 orig = pag->pag_rmapbt_resv.ar_asked; in xfs_ag_resv_critical() 91 trace_xfs_ag_resv_critical(pag, type, avail); in xfs_ag_resv_critical() 95 avail < pag in xfs_ag_resv_critical() 69 xfs_ag_resv_critical( struct xfs_perag *pag, enum xfs_ag_resv_type type) xfs_ag_resv_critical() argument 104 xfs_ag_resv_needed( struct xfs_perag *pag, enum xfs_ag_resv_type type) xfs_ag_resv_needed() argument 130 __xfs_ag_resv_free( struct xfs_perag *pag, enum xfs_ag_resv_type type) __xfs_ag_resv_free() argument 165 xfs_ag_resv_free( struct xfs_perag *pag) xfs_ag_resv_free() argument 179 __xfs_ag_resv_init( struct xfs_perag *pag, enum xfs_ag_resv_type type, xfs_extlen_t ask, xfs_extlen_t used) __xfs_ag_resv_init() argument 249 xfs_ag_resv_init( struct xfs_perag *pag, struct xfs_trans *tp) xfs_ag_resv_init() argument 349 xfs_ag_resv_alloc_extent( struct xfs_perag *pag, enum xfs_ag_resv_type type, struct xfs_alloc_arg *args) xfs_ag_resv_alloc_extent() argument 391 xfs_ag_resv_free_extent( struct xfs_perag *pag, enum xfs_ag_resv_type type, struct xfs_trans *tp, xfs_extlen_t len) xfs_ag_resv_free_extent() argument [all...] |
H A D | xfs_ag.c | 46 struct xfs_perag *pag; in xfs_perag_get() local 49 pag = radix_tree_lookup(&mp->m_perag_tree, agno); in xfs_perag_get() 50 if (pag) { in xfs_perag_get() 51 trace_xfs_perag_get(pag, _RET_IP_); in xfs_perag_get() 52 ASSERT(atomic_read(&pag->pag_ref) >= 0); in xfs_perag_get() 53 atomic_inc(&pag->pag_ref); in xfs_perag_get() 56 return pag; in xfs_perag_get() 68 struct xfs_perag *pag; in xfs_perag_get_tag() local 73 (void **)&pag, first, 1, tag); in xfs_perag_get_tag() 78 trace_xfs_perag_get_tag(pag, _RET_IP in xfs_perag_get_tag() 86 xfs_perag_hold( struct xfs_perag *pag) xfs_perag_hold() argument 98 xfs_perag_put( struct xfs_perag *pag) xfs_perag_put() argument 117 struct xfs_perag *pag; xfs_perag_grab() local 139 struct xfs_perag *pag; xfs_perag_grab_tag() local 157 xfs_perag_rele( struct xfs_perag *pag) xfs_perag_rele() argument 179 struct xfs_perag *pag; xfs_initialize_perag_data() local 241 struct xfs_perag *pag = container_of(head, struct xfs_perag, rcu_head); __xfs_free_perag() local 254 struct xfs_perag *pag; xfs_free_perag() local 342 struct xfs_perag *pag; xfs_initialize_perag() local 897 xfs_ag_shrink_space( struct xfs_perag *pag, struct xfs_trans **tpp, xfs_extlen_t delta) xfs_ag_shrink_space() argument 1028 xfs_ag_extend_space( struct xfs_perag *pag, struct xfs_trans *tp, xfs_extlen_t len) xfs_ag_extend_space() argument 1085 xfs_ag_get_geometry( struct xfs_perag *pag, struct xfs_ag_geometry *ageo) xfs_ag_get_geometry() argument [all...] |
H A 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, 23 struct xfs_perag *pag, in xfs_perag_resv() 28 return &pag->pag_meta_resv; in xfs_perag_resv() 30 return &pag->pag_rmapbt_resv; in xfs_perag_resv() 47 struct xfs_perag *pag; in xfs_ag_resv_rmapbt_alloc() local 22 xfs_perag_resv( struct xfs_perag *pag, enum xfs_ag_resv_type type) xfs_perag_resv() argument [all...] |
H A D | xfs_ialloc.c | 107 if (!xfs_verify_agino(cur->bc_ag.pag, irec->ir_startino)) in xfs_inobt_check_irec() 109 if (!xfs_verify_agino(cur->bc_ag.pag, in xfs_inobt_check_irec() 140 cur->bc_ag.pag->pag_agno, fa); in xfs_inobt_complain_bad_rec() 198 struct xfs_perag *pag, in xfs_inobt_insert() 210 cur = xfs_inobt_init_cursor(pag, tp, agbp, btnum); in xfs_inobt_insert() 270 ASSERT(freecount == cur->bc_ag.pag->pagi_freecount); in xfs_check_agi_freecount() 542 struct xfs_perag *pag, in xfs_inobt_insert_sprec() 549 struct xfs_mount *mp = pag->pag_mount; in xfs_inobt_insert_sprec() 555 cur = xfs_inobt_init_cursor(pag, tp, agbp, btnum); in xfs_inobt_insert_sprec() 602 trace_xfs_irec_merge_pre(mp, pag in xfs_inobt_insert_sprec() 197 xfs_inobt_insert( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_agino_t newino, xfs_agino_t newlen, xfs_btnum_t btnum) xfs_inobt_insert() argument 541 xfs_inobt_insert_sprec( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, int btnum, struct xfs_inobt_rec_incore *nrec, bool merge) xfs_inobt_insert_sprec() argument 636 xfs_ialloc_ag_alloc( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp) xfs_ialloc_ag_alloc() argument 1004 xfs_dialloc_ag_inobt( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_ino_t parent, xfs_ino_t *inop) xfs_dialloc_ag_inobt() argument 1452 xfs_dialloc_ag( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_ino_t parent, xfs_ino_t *inop) xfs_dialloc_ag() argument 1602 xfs_dialloc_good_ag( struct xfs_perag *pag, struct xfs_trans *tp, umode_t mode, int flags, bool ok_alloc) xfs_dialloc_good_ag() argument 1675 xfs_dialloc_try_ag( struct xfs_perag *pag, struct xfs_trans **tpp, xfs_ino_t parent, xfs_ino_t *new_ino, bool ok_alloc) xfs_dialloc_try_ag() argument 1745 struct xfs_perag *pag; xfs_dialloc() local 1917 xfs_difree_inobt( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_agino_t agino, struct xfs_icluster *xic, struct xfs_inobt_rec_incore *orec) xfs_difree_inobt() argument 2051 xfs_difree_finobt( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_agino_t agino, struct xfs_inobt_rec_incore *ibtrec) xfs_difree_finobt() argument 2161 xfs_difree( struct xfs_trans *tp, struct xfs_perag *pag, xfs_ino_t inode, struct xfs_icluster *xic) xfs_difree() argument 2232 xfs_imap_lookup( struct xfs_perag *pag, struct xfs_trans *tp, xfs_agino_t agino, xfs_agblock_t agbno, xfs_agblock_t *chunk_agbno, xfs_agblock_t *offset_agbno, int flags) xfs_imap_lookup() argument 2295 xfs_imap( struct xfs_perag *pag, struct xfs_trans *tp, xfs_ino_t ino, struct xfs_imap *imap, uint flags) xfs_imap() argument 2588 xfs_read_agi( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf **agibpp) xfs_read_agi() argument 2615 xfs_ialloc_read_agi( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf **agibpp) xfs_ialloc_read_agi() argument 2964 xfs_ialloc_check_shrink( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agibp, xfs_agblock_t new_length) xfs_ialloc_check_shrink() argument [all...] |
H A D | xfs_refcount_btree.c | 32 cur->bc_ag.agbp, cur->bc_ag.pag); in xfs_refcountbt_dup_cursor() 43 struct xfs_perag *pag = agbp->b_pag; in xfs_refcountbt_set_root() local 49 pag->pagf_refcount_level += inc; in xfs_refcountbt_set_root() 70 args.pag = cur->bc_ag.pag; in xfs_refcountbt_alloc_block() 76 XFS_AGB_TO_FSB(args.mp, args.pag->pag_agno, in xfs_refcountbt_alloc_block() 80 trace_xfs_refcountbt_alloc_block(cur->bc_mp, cur->bc_ag.pag->pag_agno, in xfs_refcountbt_alloc_block() 86 ASSERT(args.agno == cur->bc_ag.pag->pag_agno); in xfs_refcountbt_alloc_block() 110 trace_xfs_refcountbt_free_block(cur->bc_mp, cur->bc_ag.pag->pag_agno, in xfs_refcountbt_free_block() 176 ASSERT(cur->bc_ag.pag in xfs_refcountbt_init_ptr_from_cur() 214 struct xfs_perag *pag = bp->b_pag; xfs_refcountbt_verify() local 339 xfs_refcountbt_init_common( struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_perag *pag) xfs_refcountbt_init_common() argument 363 xfs_refcountbt_init_cursor( struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_buf *agbp, struct xfs_perag *pag) xfs_refcountbt_init_cursor() argument 380 xfs_refcountbt_stage_cursor( struct xfs_mount *mp, struct xbtree_afakeroot *afake, struct xfs_perag *pag) xfs_refcountbt_stage_cursor() argument 498 xfs_refcountbt_calc_reserves( struct xfs_mount *mp, struct xfs_trans *tp, struct xfs_perag *pag, xfs_extlen_t *ask, xfs_extlen_t *used) xfs_refcountbt_calc_reserves() argument [all...] |
H A D | xfs_ialloc_btree.c | 39 return xfs_inobt_init_cursor(cur->bc_ag.pag, cur->bc_tp, in xfs_inobt_dup_cursor() 106 args.pag = cur->bc_ag.pag; in __xfs_inobt_alloc_block() 114 XFS_AGB_TO_FSB(args.mp, args.pag->pag_agno, sbno)); in __xfs_inobt_alloc_block() 242 ASSERT(cur->bc_ag.pag->pag_agno == be32_to_cpu(agi->agi_seqno)); in xfs_inobt_init_ptr_from_cur() 254 ASSERT(cur->bc_ag.pag->pag_agno == be32_to_cpu(agi->agi_seqno)); in xfs_finobt_init_ptr_from_cur() 300 * xfs_perag_initialised_agi(pag)) if we ever do. in xfs_inobt_verify() 450 struct xfs_perag *pag, in xfs_inobt_init_common() 454 struct xfs_mount *mp = pag->pag_mount; in xfs_inobt_init_common() 470 cur->bc_ag.pag in xfs_inobt_init_common() 449 xfs_inobt_init_common( struct xfs_perag *pag, struct xfs_trans *tp, xfs_btnum_t btnum) xfs_inobt_init_common() argument 476 xfs_inobt_init_cursor( struct xfs_perag *pag, struct xfs_trans *tp, struct xfs_buf *agbp, xfs_btnum_t btnum) xfs_inobt_init_cursor() argument 496 xfs_inobt_stage_cursor( struct xfs_perag *pag, struct xbtree_afakeroot *afake, xfs_btnum_t btnum) xfs_inobt_stage_cursor() argument 701 xfs_inobt_max_size( struct xfs_perag *pag) xfs_inobt_max_size() argument 726 xfs_inobt_cur( struct xfs_perag *pag, struct xfs_trans *tp, xfs_btnum_t which, struct xfs_btree_cur **curpp, struct xfs_buf **agi_bpp) xfs_inobt_cur() argument 749 xfs_inobt_count_blocks( struct xfs_perag *pag, struct xfs_trans *tp, xfs_btnum_t btnum, xfs_extlen_t *tree_blocks) xfs_inobt_count_blocks() argument 772 xfs_finobt_read_blocks( struct xfs_perag *pag, struct xfs_trans *tp, xfs_extlen_t *tree_blocks) xfs_finobt_read_blocks() argument 795 xfs_finobt_calc_reserves( struct xfs_perag *pag, struct xfs_trans *tp, xfs_extlen_t *ask, xfs_extlen_t *used) xfs_finobt_calc_reserves() argument [all...] |
/kernel/linux/linux-5.10/fs/xfs/libxfs/ |
H A D | xfs_ag_resv.c | 70 struct xfs_perag *pag, in xfs_ag_resv_critical() 78 avail = pag->pagf_freeblks - pag->pag_rmapbt_resv.ar_reserved; in xfs_ag_resv_critical() 79 orig = pag->pag_meta_resv.ar_asked; in xfs_ag_resv_critical() 82 avail = pag->pagf_freeblks + pag->pagf_flcount - in xfs_ag_resv_critical() 83 pag->pag_meta_resv.ar_reserved; in xfs_ag_resv_critical() 84 orig = pag->pag_rmapbt_resv.ar_asked; in xfs_ag_resv_critical() 91 trace_xfs_ag_resv_critical(pag, type, avail); in xfs_ag_resv_critical() 95 pag in xfs_ag_resv_critical() 69 xfs_ag_resv_critical( struct xfs_perag *pag, enum xfs_ag_resv_type type) xfs_ag_resv_critical() argument 103 xfs_ag_resv_needed( struct xfs_perag *pag, enum xfs_ag_resv_type type) xfs_ag_resv_needed() argument 129 __xfs_ag_resv_free( struct xfs_perag *pag, enum xfs_ag_resv_type type) __xfs_ag_resv_free() argument 164 xfs_ag_resv_free( struct xfs_perag *pag) xfs_ag_resv_free() argument 178 __xfs_ag_resv_init( struct xfs_perag *pag, enum xfs_ag_resv_type type, xfs_extlen_t ask, xfs_extlen_t used) __xfs_ag_resv_init() argument 244 xfs_ag_resv_init( struct xfs_perag *pag, struct xfs_trans *tp) xfs_ag_resv_init() argument 321 xfs_ag_resv_alloc_extent( struct xfs_perag *pag, enum xfs_ag_resv_type type, struct xfs_alloc_arg *args) xfs_ag_resv_alloc_extent() argument 363 xfs_ag_resv_free_extent( struct xfs_perag *pag, enum xfs_ag_resv_type type, struct xfs_trans *tp, xfs_extlen_t len) xfs_ag_resv_free_extent() argument [all...] |
H A 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...] |
/kernel/linux/linux-6.6/fs/xfs/ |
H A D | xfs_filestream.c | 26 struct xfs_perag *pag; /* AG in use for this directory */ member 41 struct xfs_perag *pag = item->pag; in xfs_fstrm_free_func() local 43 trace_xfs_filestream_free(pag, mru->key); in xfs_fstrm_free_func() 44 atomic_dec(&pag->pagf_fstrms); in xfs_fstrm_free_func() 45 xfs_perag_rele(pag); in xfs_fstrm_free_func() 64 struct xfs_perag *pag; in xfs_filestream_pick_ag() local 76 for_each_perag_wrap(mp, start_agno, agno, pag) { in xfs_filestream_pick_ag() 77 trace_xfs_filestream_scan(pag, pino); in xfs_filestream_pick_ag() 79 err = xfs_bmap_longest_free_extent(pag, NUL in xfs_filestream_pick_ag() 213 struct xfs_perag *pag; xfs_filestream_lookup_association() local [all...] |
H A D | xfs_extent_busy.c | 24 struct xfs_perag *pag, in xfs_extent_busy_insert_list() 36 new->agno = pag->pag_agno; in xfs_extent_busy_insert_list() 43 trace_xfs_extent_busy(pag->pag_mount, pag->pag_agno, bno, len); in xfs_extent_busy_insert_list() 45 spin_lock(&pag->pagb_lock); in xfs_extent_busy_insert_list() 46 rbp = &pag->pagb_tree.rb_node; in xfs_extent_busy_insert_list() 63 rb_insert_color(&new->rb_node, &pag->pagb_tree); in xfs_extent_busy_insert_list() 67 spin_unlock(&pag->pagb_lock); in xfs_extent_busy_insert_list() 73 struct xfs_perag *pag, in xfs_extent_busy_insert() 78 xfs_extent_busy_insert_list(pag, bn in xfs_extent_busy_insert() 23 xfs_extent_busy_insert_list( struct xfs_perag *pag, xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags, struct list_head *busy_list) xfs_extent_busy_insert_list() argument 71 xfs_extent_busy_insert( struct xfs_trans *tp, struct xfs_perag *pag, xfs_agblock_t bno, xfs_extlen_t len, unsigned int flags) xfs_extent_busy_insert() argument 82 xfs_extent_busy_insert_discard( struct xfs_perag *pag, xfs_agblock_t bno, xfs_extlen_t len, struct list_head *busy_list) xfs_extent_busy_insert_discard() argument 102 xfs_extent_busy_search( struct xfs_mount *mp, struct xfs_perag *pag, xfs_agblock_t bno, xfs_extlen_t len) xfs_extent_busy_search() argument 298 xfs_extent_busy_reuse( struct xfs_mount *mp, struct xfs_perag *pag, xfs_agblock_t fbno, xfs_extlen_t flen, bool userdata) xfs_extent_busy_reuse() argument 521 xfs_extent_busy_clear_one( struct xfs_mount *mp, struct xfs_perag *pag, struct xfs_extent_busy *busyp) xfs_extent_busy_clear_one() argument 548 xfs_perag_put(pag); global() variable 563 struct xfs_perag *pag = NULL; xfs_extent_busy_clear() local 605 xfs_extent_busy_flush( struct xfs_trans *tp, struct xfs_perag *pag, unsigned busy_gen, uint32_t alloc_flags) xfs_extent_busy_flush() argument 646 struct xfs_perag *pag; xfs_extent_busy_wait_all() local [all...] |
H A D | xfs_drain.c | 105 struct xfs_perag *pag; in xfs_perag_intent_get() local 107 pag = xfs_perag_get(mp, agno); in xfs_perag_intent_get() 108 if (!pag) in xfs_perag_intent_get() 111 xfs_perag_intent_hold(pag); in xfs_perag_intent_get() 112 return pag; in xfs_perag_intent_get() 121 struct xfs_perag *pag) in xfs_perag_intent_put() 123 xfs_perag_intent_rele(pag); in xfs_perag_intent_put() 124 xfs_perag_put(pag); in xfs_perag_intent_put() 133 struct xfs_perag *pag) in xfs_perag_intent_hold() 135 trace_xfs_perag_intent_hold(pag, __return_addres in xfs_perag_intent_hold() 120 xfs_perag_intent_put( struct xfs_perag *pag) xfs_perag_intent_put() argument 132 xfs_perag_intent_hold( struct xfs_perag *pag) xfs_perag_intent_hold() argument 141 xfs_perag_intent_rele( struct xfs_perag *pag) xfs_perag_intent_rele() argument 153 xfs_perag_intent_drain( struct xfs_perag *pag) xfs_perag_intent_drain() argument 162 xfs_perag_intent_busy( struct xfs_perag *pag) xfs_perag_intent_busy() argument [all...] |
H A D | xfs_icache.c | 49 static int xfs_icwalk_ag(struct xfs_perag *pag, 207 struct xfs_perag *pag) in xfs_blockgc_queue() 209 struct xfs_mount *mp = pag->pag_mount; in xfs_blockgc_queue() 215 if (radix_tree_tagged(&pag->pag_ici_root, XFS_ICI_BLOCKGC_TAG)) in xfs_blockgc_queue() 216 queue_delayed_work(pag->pag_mount->m_blockgc_wq, in xfs_blockgc_queue() 217 &pag->pag_blockgc_work, in xfs_blockgc_queue() 225 struct xfs_perag *pag, in xfs_perag_set_inode_tag() 229 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_set_inode_tag() 232 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_set_inode_tag() 234 was_tagged = radix_tree_tagged(&pag in xfs_perag_set_inode_tag() 206 xfs_blockgc_queue( struct xfs_perag *pag) xfs_blockgc_queue() argument 224 xfs_perag_set_inode_tag( struct xfs_perag *pag, xfs_agino_t agino, unsigned int tag) xfs_perag_set_inode_tag() argument 263 xfs_perag_clear_inode_tag( struct xfs_perag *pag, xfs_agino_t agino, unsigned int tag) xfs_perag_clear_inode_tag() argument 597 xfs_iget_cache_miss( struct xfs_mount *mp, struct xfs_perag *pag, xfs_trans_t *tp, xfs_ino_t ino, struct xfs_inode **ipp, int flags, int lock_flags) xfs_iget_cache_miss() argument 744 struct xfs_perag *pag; xfs_iget() local 862 xfs_reclaim_inode( struct xfs_inode *ip, struct xfs_perag *pag) xfs_reclaim_inode() argument 1015 struct xfs_perag *pag; xfs_reclaim_inodes_count() local 1167 struct xfs_perag *pag; xfs_blockgc_set_iflag() local 1205 struct xfs_perag *pag; xfs_blockgc_clear_iflag() local 1349 struct xfs_perag *pag; xfs_blockgc_stop() local 1365 struct xfs_perag *pag; xfs_blockgc_start() local 1446 struct xfs_perag *pag = container_of(to_delayed_work(work), xfs_blockgc_worker() local 1488 struct xfs_perag *pag; xfs_blockgc_flush_all() local 1610 xfs_icwalk_process_inode( enum xfs_icwalk_goal goal, struct xfs_inode *ip, struct xfs_perag *pag, struct xfs_icwalk *icw) xfs_icwalk_process_inode() argument 1634 xfs_icwalk_ag( struct xfs_perag *pag, enum xfs_icwalk_goal goal, struct xfs_icwalk *icw) xfs_icwalk_ag() argument 1748 struct xfs_perag *pag; xfs_icwalk() local 1799 struct xfs_perag *pag; xfs_inodegc_set_reclaimable() local [all...] |
H A D | xfs_iwalk.c | 55 struct xfs_perag *pag; member 98 struct xfs_perag *pag, in xfs_iwalk_ichunk_ra() 114 xfs_btree_reada_bufs(mp, pag->pag_agno, agbno, in xfs_iwalk_ichunk_ra() 186 struct xfs_perag *pag = iwag->pag; in xfs_iwalk_ag_recs() local 194 trace_xfs_iwalk_ag_rec(mp, pag->pag_agno, irec); in xfs_iwalk_ag_recs() 200 error = iwag->inobt_walk_fn(mp, tp, pag->pag_agno, irec, in xfs_iwalk_ag_recs() 218 ino = XFS_AGINO_TO_INO(mp, pag->pag_agno, in xfs_iwalk_ag_recs() 272 struct xfs_perag *pag = iwag->pag; in xfs_iwalk_ag_start() local 96 xfs_iwalk_ichunk_ra( struct xfs_mount *mp, struct xfs_perag *pag, struct xfs_inobt_rec_incore *irec) xfs_iwalk_ichunk_ra() argument 407 struct xfs_perag *pag = iwag->pag; xfs_iwalk_ag() local 571 struct xfs_perag *pag; xfs_iwalk() local 649 struct xfs_perag *pag; xfs_iwalk_threaded() local 755 struct xfs_perag *pag; xfs_inobt_walk() local [all...] |
H A D | xfs_drain.h | 66 void xfs_perag_intent_put(struct xfs_perag *pag); 68 void xfs_perag_intent_hold(struct xfs_perag *pag); 69 void xfs_perag_intent_rele(struct xfs_perag *pag); 71 int xfs_perag_intent_drain(struct xfs_perag *pag); 72 bool xfs_perag_intent_busy(struct xfs_perag *pag); 80 #define xfs_perag_intent_put(pag) xfs_perag_put(pag) 82 static inline void xfs_perag_intent_hold(struct xfs_perag *pag) { } in xfs_perag_intent_hold() argument 83 static inline void xfs_perag_intent_rele(struct xfs_perag *pag) { } in xfs_perag_intent_rele() argument
|
H A D | xfs_health.c | 27 struct xfs_perag *pag; in xfs_health_unmount() local 37 for_each_perag(mp, agno, pag) { in xfs_health_unmount() 38 xfs_ag_measure_sickness(pag, &sick, &checked); in xfs_health_unmount() 179 struct xfs_perag *pag, in xfs_ag_mark_sick() 183 trace_xfs_ag_mark_sick(pag->pag_mount, pag->pag_agno, mask); in xfs_ag_mark_sick() 185 spin_lock(&pag->pag_state_lock); in xfs_ag_mark_sick() 186 pag->pag_sick |= mask; in xfs_ag_mark_sick() 187 pag->pag_checked |= mask; in xfs_ag_mark_sick() 188 spin_unlock(&pag in xfs_ag_mark_sick() 178 xfs_ag_mark_sick( struct xfs_perag *pag, unsigned int mask) xfs_ag_mark_sick() argument 193 xfs_ag_mark_healthy( struct xfs_perag *pag, unsigned int mask) xfs_ag_mark_healthy() argument 208 xfs_ag_measure_sickness( struct xfs_perag *pag, unsigned int *sick, unsigned int *checked) xfs_ag_measure_sickness() argument 343 xfs_ag_geom_health( struct xfs_perag *pag, struct xfs_ag_geometry *ageo) xfs_ag_geom_health() argument [all...] |
H A D | xfs_discard.c | 149 struct xfs_perag *pag, in xfs_trim_gather_extents() 157 struct xfs_mount *mp = pag->pag_mount; in xfs_trim_gather_extents() 171 error = xfs_alloc_read_agf(pag, NULL, 0, &agbp); in xfs_trim_gather_extents() 175 cur = xfs_allocbt_init_cursor(mp, NULL, agbp, pag, XFS_BTNUM_CNT); in xfs_trim_gather_extents() 226 dbno = XFS_AGB_TO_DADDR(mp, pag->pag_agno, fbno); in xfs_trim_gather_extents() 233 trace_xfs_discard_toosmall(mp, pag->pag_agno, fbno, flen); in xfs_trim_gather_extents() 244 trace_xfs_discard_exclude(mp, pag->pag_agno, fbno, flen); in xfs_trim_gather_extents() 252 if (xfs_extent_busy_search(mp, pag, fbno, flen)) { in xfs_trim_gather_extents() 253 trace_xfs_discard_busy(mp, pag->pag_agno, fbno, flen); in xfs_trim_gather_extents() 257 xfs_extent_busy_insert_discard(pag, fbn in xfs_trim_gather_extents() 148 xfs_trim_gather_extents( struct xfs_perag *pag, xfs_daddr_t start, xfs_daddr_t end, xfs_daddr_t minlen, struct xfs_alloc_rec_incore *tcur, struct xfs_busy_extents *extents, uint64_t *blocks_trimmed) xfs_trim_gather_extents() argument 298 xfs_trim_extents( struct xfs_perag *pag, xfs_daddr_t start, xfs_daddr_t end, xfs_daddr_t minlen, uint64_t *blocks_trimmed) xfs_trim_extents() argument 368 struct xfs_perag *pag; xfs_ioc_trim() local [all...] |
/kernel/linux/linux-5.10/fs/xfs/ |
H A 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 in xfs_extent_busy_search() 289 struct xfs_perag *pag; xfs_extent_busy_reuse() local 509 xfs_extent_busy_clear_one( struct xfs_mount *mp, struct xfs_perag *pag, struct xfs_extent_busy *busyp) xfs_extent_busy_clear_one() argument 536 xfs_perag_put(pag); global() variable 551 struct xfs_perag *pag = NULL; xfs_extent_busy_clear() local 582 xfs_extent_busy_flush( struct xfs_mount *mp, struct xfs_perag *pag, unsigned busy_gen) xfs_extent_busy_flush() argument 612 struct xfs_perag *pag = xfs_perag_get(mp, agno); xfs_extent_busy_wait_all() local [all...] |
H A D | xfs_icache.c | 161 struct xfs_perag *pag) in xfs_perag_set_reclaim_tag() 163 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_set_reclaim_tag() 165 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_set_reclaim_tag() 166 if (pag->pag_ici_reclaimable++) in xfs_perag_set_reclaim_tag() 171 radix_tree_tag_set(&mp->m_perag_tree, pag->pag_agno, in xfs_perag_set_reclaim_tag() 178 trace_xfs_perag_set_reclaim(mp, pag->pag_agno, -1, _RET_IP_); in xfs_perag_set_reclaim_tag() 183 struct xfs_perag *pag) in xfs_perag_clear_reclaim_tag() 185 struct xfs_mount *mp = pag->pag_mount; in xfs_perag_clear_reclaim_tag() 187 lockdep_assert_held(&pag->pag_ici_lock); in xfs_perag_clear_reclaim_tag() 188 if (--pag in xfs_perag_clear_reclaim_tag() 160 xfs_perag_set_reclaim_tag( struct xfs_perag *pag) xfs_perag_set_reclaim_tag() argument 182 xfs_perag_clear_reclaim_tag( struct xfs_perag *pag) xfs_perag_clear_reclaim_tag() argument 210 struct xfs_perag *pag; xfs_inode_set_reclaim_tag() local 227 xfs_inode_clear_reclaim_tag( struct xfs_perag *pag, xfs_ino_t ino) xfs_inode_clear_reclaim_tag() argument 473 xfs_iget_cache_miss( struct xfs_mount *mp, struct xfs_perag *pag, xfs_trans_t *tp, xfs_ino_t ino, struct xfs_inode **ipp, int flags, int lock_flags) xfs_iget_cache_miss() argument 620 struct xfs_perag *pag; xfs_iget() local 772 xfs_inode_walk_ag( struct xfs_perag *pag, int iter_flags, int (*execute)(struct xfs_inode *ip, void *args), void *args, int tag) xfs_inode_walk_ag() argument 900 struct xfs_perag *pag; xfs_inode_walk() local 1030 xfs_reclaim_inode( struct xfs_inode *ip, struct xfs_perag *pag) xfs_reclaim_inode() argument 1125 struct xfs_perag *pag; xfs_reclaim_inodes_ag() local 1243 struct xfs_perag *pag; xfs_reclaim_inodes_count() local 1477 struct xfs_perag *pag; __xfs_inode_set_blocks_tag() local 1532 struct xfs_perag *pag; __xfs_inode_clear_blocks_tag() local [all...] |
H A D | xfs_filestream.c | 43 struct xfs_perag *pag; in xfs_filestream_peek_ag() local 46 pag = xfs_perag_get(mp, agno); in xfs_filestream_peek_ag() 47 ret = atomic_read(&pag->pagf_fstrms); in xfs_filestream_peek_ag() 48 xfs_perag_put(pag); in xfs_filestream_peek_ag() 57 struct xfs_perag *pag; in xfs_filestream_get_ag() local 60 pag = xfs_perag_get(mp, agno); in xfs_filestream_get_ag() 61 ret = atomic_inc_return(&pag->pagf_fstrms); in xfs_filestream_get_ag() 62 xfs_perag_put(pag); in xfs_filestream_get_ag() 71 struct xfs_perag *pag; in xfs_filestream_put_ag() local 73 pag in xfs_filestream_put_ag() 107 struct xfs_perag *pag; xfs_filestream_pick_ag() local [all...] |
H A D | xfs_health.c | 27 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() 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 in xfs_ag_mark_sick() 180 xfs_ag_mark_sick( struct xfs_perag *pag, unsigned int mask) xfs_ag_mark_sick() argument 195 xfs_ag_mark_healthy( struct xfs_perag *pag, unsigned int mask) xfs_ag_mark_healthy() argument 210 xfs_ag_measure_sickness( struct xfs_perag *pag, unsigned int *sick, unsigned int *checked) xfs_ag_measure_sickness() argument 336 xfs_ag_geom_health( struct xfs_perag *pag, struct xfs_ag_geometry *ageo) xfs_ag_geom_health() argument [all...] |
/kernel/linux/linux-5.10/fs/xfs/scrub/ |
H A D | fscounters.c | 69 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() 92 if (!pag->pagi_init || !pag->pagf_init) in xchk_fscount_warmup() 100 xfs_perag_put(pag); in xchk_fscount_warmup() 101 pag = NULL; in xchk_fscount_warmup() 112 if (pag) in xchk_fscount_warmup() 113 xfs_perag_put(pag); in xchk_fscount_warmup() 159 struct xfs_perag *pag; xchk_fscount_aggregate_agcounts() local [all...] |
/kernel/linux/linux-6.6/fs/xfs/scrub/ |
H A D | agheader_repair.c | 114 if (!xfs_verify_agbno(sc->sa.pag, agbno)) in xrep_agf_check_agfl_block() 138 return xfs_verify_agbno(sc->sa.pag, fab->root) && in xrep_check_btree_root() 199 struct xfs_perag *pag = sc->sa.pag; in xrep_agf_init_header() local 206 agf->agf_seqno = cpu_to_be32(pag->pag_agno); in xrep_agf_init_header() 207 agf->agf_length = cpu_to_be32(pag->block_count); in xrep_agf_init_header() 215 ASSERT(xfs_perag_initialised_agf(pag)); in xrep_agf_init_header() 216 clear_bit(XFS_AGSTATE_AGF_INIT, &pag->pag_opstate); in xrep_agf_init_header() 265 sc->sa.pag, XFS_BTNUM_BNO); in xrep_agf_calc_from_btrees() 279 sc->sa.pag, XFS_BTNUM_CN in xrep_agf_calc_from_btrees() 320 struct xfs_perag *pag; xrep_agf_commit_new() local 856 struct xfs_perag *pag = sc->sa.pag; xrep_agi_init_header() local 949 struct xfs_perag *pag; xrep_agi_commit_new() local [all...] |
H A D | fscounters.c | 86 struct xfs_perag *pag = NULL; in xchk_fscount_warmup() local 90 for_each_perag(mp, agno, pag) { in xchk_fscount_warmup() 93 if (xfs_perag_initialised_agi(pag) && in xchk_fscount_warmup() 94 xfs_perag_initialised_agf(pag)) in xchk_fscount_warmup() 98 error = xfs_ialloc_read_agi(pag, sc->tp, &agi_bp); in xchk_fscount_warmup() 101 error = xfs_alloc_read_agf(pag, sc->tp, 0, &agf_bp); in xchk_fscount_warmup() 109 if (!xfs_perag_initialised_agi(pag) || in xchk_fscount_warmup() 110 !xfs_perag_initialised_agf(pag)) { in xchk_fscount_warmup() 125 if (pag) in xchk_fscount_warmup() 126 xfs_perag_rele(pag); in xchk_fscount_warmup() 301 struct xfs_perag *pag; xchk_fscount_aggregate_agcounts() local [all...] |
H A D | repair.c | 236 struct xfs_perag *pag, in xrep_ag_has_space() 240 return !xfs_ag_resv_critical(pag, XFS_AG_RESV_RMAPBT) && in xrep_ag_has_space() 241 !xfs_ag_resv_critical(pag, XFS_AG_RESV_METADATA) && in xrep_ag_has_space() 242 pag->pagf_freeblks > xfs_ag_resv_needed(pag, type) + nr_blocks; in xrep_ag_has_space() 256 struct xfs_perag *pag; in xrep_calc_ag_resblks() local 271 pag = xfs_perag_get(mp, sm->sm_agno); in xrep_calc_ag_resblks() 272 if (xfs_perag_initialised_agi(pag)) { in xrep_calc_ag_resblks() 274 icount = pag->pagi_count; in xrep_calc_ag_resblks() 277 error = xfs_ialloc_read_agi(pag, NUL in xrep_calc_ag_resblks() 235 xrep_ag_has_space( struct xfs_perag *pag, xfs_extlen_t nr_blocks, enum xfs_ag_resv_type type) xrep_ag_has_space() argument [all...] |