Lines Matching refs:pag
41 struct xfs_perag *pag, struct xfs_inode *ip);
142 struct xfs_perag *pag, in xfs_iget_cache_hit() argument
226 spin_lock(&pag->pag_ici_lock); in xfs_iget_cache_hit()
236 __xfs_inode_clear_reclaim_tag(mp, pag, ip); in xfs_iget_cache_hit()
243 spin_unlock(&pag->pag_ici_lock); in xfs_iget_cache_hit()
276 struct xfs_perag *pag, in xfs_iget_cache_miss() argument
341 spin_lock(&pag->pag_ici_lock); in xfs_iget_cache_miss()
342 error = radix_tree_insert(&pag->pag_ici_root, agino, ip); in xfs_iget_cache_miss()
349 spin_unlock(&pag->pag_ici_lock); in xfs_iget_cache_miss()
356 spin_unlock(&pag->pag_ici_lock); in xfs_iget_cache_miss()
399 xfs_perag_t *pag; in xfs_iget() local
416 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino)); in xfs_iget()
422 ip = radix_tree_lookup(&pag->pag_ici_root, agino); in xfs_iget()
425 error = xfs_iget_cache_hit(pag, ip, ino, flags, lock_flags); in xfs_iget()
432 error = xfs_iget_cache_miss(mp, pag, tp, ino, &ip, in xfs_iget()
437 xfs_perag_put(pag); in xfs_iget()
454 xfs_perag_put(pag); in xfs_iget()
511 struct xfs_perag *pag, in xfs_inode_ag_walk() argument
537 nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, in xfs_inode_ag_walk()
542 &pag->pag_ici_root, in xfs_inode_ag_walk()
573 if (XFS_INO_TO_AGNO(mp, ip->i_ino) != pag->pag_agno) in xfs_inode_ag_walk()
645 struct xfs_perag *pag; in xfs_inode_ag_iterator() local
651 while ((pag = xfs_perag_get(mp, ag))) { in xfs_inode_ag_iterator()
652 ag = pag->pag_agno + 1; in xfs_inode_ag_iterator()
653 error = xfs_inode_ag_walk(mp, pag, execute, flags, args, -1); in xfs_inode_ag_iterator()
654 xfs_perag_put(pag); in xfs_inode_ag_iterator()
673 struct xfs_perag *pag; in xfs_inode_ag_iterator_tag() local
679 while ((pag = xfs_perag_get_tag(mp, ag, tag))) { in xfs_inode_ag_iterator_tag()
680 ag = pag->pag_agno + 1; in xfs_inode_ag_iterator_tag()
681 error = xfs_inode_ag_walk(mp, pag, execute, flags, args, tag); in xfs_inode_ag_iterator_tag()
682 xfs_perag_put(pag); in xfs_inode_ag_iterator_tag()
732 struct xfs_perag *pag, in __xfs_inode_set_reclaim_tag() argument
735 radix_tree_tag_set(&pag->pag_ici_root, in __xfs_inode_set_reclaim_tag()
739 if (!pag->pag_ici_reclaimable) { in __xfs_inode_set_reclaim_tag()
750 trace_xfs_perag_set_reclaim(ip->i_mount, pag->pag_agno, in __xfs_inode_set_reclaim_tag()
753 pag->pag_ici_reclaimable++; in __xfs_inode_set_reclaim_tag()
766 struct xfs_perag *pag; in xfs_inode_set_reclaim_tag() local
768 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_set_reclaim_tag()
769 spin_lock(&pag->pag_ici_lock); in xfs_inode_set_reclaim_tag()
771 __xfs_inode_set_reclaim_tag(pag, ip); in xfs_inode_set_reclaim_tag()
774 spin_unlock(&pag->pag_ici_lock); in xfs_inode_set_reclaim_tag()
775 xfs_perag_put(pag); in xfs_inode_set_reclaim_tag()
780 xfs_perag_t *pag, in __xfs_inode_clear_reclaim() argument
783 pag->pag_ici_reclaimable--; in __xfs_inode_clear_reclaim()
784 if (!pag->pag_ici_reclaimable) { in __xfs_inode_clear_reclaim()
791 trace_xfs_perag_clear_reclaim(ip->i_mount, pag->pag_agno, in __xfs_inode_clear_reclaim()
799 xfs_perag_t *pag, in __xfs_inode_clear_reclaim_tag() argument
802 radix_tree_tag_clear(&pag->pag_ici_root, in __xfs_inode_clear_reclaim_tag()
804 __xfs_inode_clear_reclaim(pag, ip); in __xfs_inode_clear_reclaim_tag()
895 struct xfs_perag *pag, in xfs_reclaim_inode() argument
974 spin_lock(&pag->pag_ici_lock); in xfs_reclaim_inode()
975 if (!radix_tree_delete(&pag->pag_ici_root, in xfs_reclaim_inode()
978 __xfs_inode_clear_reclaim(pag, ip); in xfs_reclaim_inode()
979 spin_unlock(&pag->pag_ici_lock); in xfs_reclaim_inode()
1023 struct xfs_perag *pag; in xfs_reclaim_inodes_ag() local
1033 while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { in xfs_reclaim_inodes_ag()
1038 ag = pag->pag_agno + 1; in xfs_reclaim_inodes_ag()
1041 if (!mutex_trylock(&pag->pag_ici_reclaim_lock)) { in xfs_reclaim_inodes_ag()
1043 xfs_perag_put(pag); in xfs_reclaim_inodes_ag()
1046 first_index = pag->pag_ici_reclaim_cursor; in xfs_reclaim_inodes_ag()
1048 mutex_lock(&pag->pag_ici_reclaim_lock); in xfs_reclaim_inodes_ag()
1056 &pag->pag_ici_root, in xfs_reclaim_inodes_ag()
1091 pag->pag_agno) in xfs_reclaim_inodes_ag()
1104 error = xfs_reclaim_inode(batch[i], pag, flags); in xfs_reclaim_inodes_ag()
1116 pag->pag_ici_reclaim_cursor = first_index; in xfs_reclaim_inodes_ag()
1118 pag->pag_ici_reclaim_cursor = 0; in xfs_reclaim_inodes_ag()
1119 mutex_unlock(&pag->pag_ici_reclaim_lock); in xfs_reclaim_inodes_ag()
1120 xfs_perag_put(pag); in xfs_reclaim_inodes_ag()
1176 struct xfs_perag *pag; in xfs_reclaim_inodes_count() local
1180 while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { in xfs_reclaim_inodes_count()
1181 ag = pag->pag_agno + 1; in xfs_reclaim_inodes_count()
1182 reclaimable += pag->pag_ici_reclaimable; in xfs_reclaim_inodes_count()
1183 xfs_perag_put(pag); in xfs_reclaim_inodes_count()
1359 struct xfs_perag *pag; in xfs_inode_set_eofblocks_tag() local
1362 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_set_eofblocks_tag()
1363 spin_lock(&pag->pag_ici_lock); in xfs_inode_set_eofblocks_tag()
1366 tagged = radix_tree_tagged(&pag->pag_ici_root, in xfs_inode_set_eofblocks_tag()
1368 radix_tree_tag_set(&pag->pag_ici_root, in xfs_inode_set_eofblocks_tag()
1382 trace_xfs_perag_set_eofblocks(ip->i_mount, pag->pag_agno, in xfs_inode_set_eofblocks_tag()
1386 spin_unlock(&pag->pag_ici_lock); in xfs_inode_set_eofblocks_tag()
1387 xfs_perag_put(pag); in xfs_inode_set_eofblocks_tag()
1395 struct xfs_perag *pag; in xfs_inode_clear_eofblocks_tag() local
1397 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_clear_eofblocks_tag()
1398 spin_lock(&pag->pag_ici_lock); in xfs_inode_clear_eofblocks_tag()
1401 radix_tree_tag_clear(&pag->pag_ici_root, in xfs_inode_clear_eofblocks_tag()
1404 if (!radix_tree_tagged(&pag->pag_ici_root, XFS_ICI_EOFBLOCKS_TAG)) { in xfs_inode_clear_eofblocks_tag()
1411 trace_xfs_perag_clear_eofblocks(ip->i_mount, pag->pag_agno, in xfs_inode_clear_eofblocks_tag()
1415 spin_unlock(&pag->pag_ici_lock); in xfs_inode_clear_eofblocks_tag()
1416 xfs_perag_put(pag); in xfs_inode_clear_eofblocks_tag()