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
418 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ino)); in xfs_iget()
424 ip = radix_tree_lookup(&pag->pag_ici_root, agino); in xfs_iget()
427 error = xfs_iget_cache_hit(pag, ip, ino, flags, lock_flags); in xfs_iget()
434 error = xfs_iget_cache_miss(mp, pag, tp, ino, &ip, in xfs_iget()
439 xfs_perag_put(pag); in xfs_iget()
456 xfs_perag_put(pag); in xfs_iget()
513 struct xfs_perag *pag, in xfs_inode_ag_walk() argument
539 nr_found = radix_tree_gang_lookup(&pag->pag_ici_root, in xfs_inode_ag_walk()
544 &pag->pag_ici_root, in xfs_inode_ag_walk()
575 if (XFS_INO_TO_AGNO(mp, ip->i_ino) != pag->pag_agno) in xfs_inode_ag_walk()
647 struct xfs_perag *pag; in xfs_inode_ag_iterator() local
653 while ((pag = xfs_perag_get(mp, ag))) { in xfs_inode_ag_iterator()
654 ag = pag->pag_agno + 1; in xfs_inode_ag_iterator()
655 error = xfs_inode_ag_walk(mp, pag, execute, flags, args, -1); in xfs_inode_ag_iterator()
656 xfs_perag_put(pag); in xfs_inode_ag_iterator()
675 struct xfs_perag *pag; in xfs_inode_ag_iterator_tag() local
681 while ((pag = xfs_perag_get_tag(mp, ag, tag))) { in xfs_inode_ag_iterator_tag()
682 ag = pag->pag_agno + 1; in xfs_inode_ag_iterator_tag()
683 error = xfs_inode_ag_walk(mp, pag, execute, flags, args, tag); in xfs_inode_ag_iterator_tag()
684 xfs_perag_put(pag); in xfs_inode_ag_iterator_tag()
734 struct xfs_perag *pag, in __xfs_inode_set_reclaim_tag() argument
737 radix_tree_tag_set(&pag->pag_ici_root, in __xfs_inode_set_reclaim_tag()
741 if (!pag->pag_ici_reclaimable) { in __xfs_inode_set_reclaim_tag()
752 trace_xfs_perag_set_reclaim(ip->i_mount, pag->pag_agno, in __xfs_inode_set_reclaim_tag()
755 pag->pag_ici_reclaimable++; in __xfs_inode_set_reclaim_tag()
768 struct xfs_perag *pag; in xfs_inode_set_reclaim_tag() local
770 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_set_reclaim_tag()
771 spin_lock(&pag->pag_ici_lock); in xfs_inode_set_reclaim_tag()
773 __xfs_inode_set_reclaim_tag(pag, ip); in xfs_inode_set_reclaim_tag()
776 spin_unlock(&pag->pag_ici_lock); in xfs_inode_set_reclaim_tag()
777 xfs_perag_put(pag); in xfs_inode_set_reclaim_tag()
782 xfs_perag_t *pag, in __xfs_inode_clear_reclaim() argument
785 pag->pag_ici_reclaimable--; in __xfs_inode_clear_reclaim()
786 if (!pag->pag_ici_reclaimable) { in __xfs_inode_clear_reclaim()
793 trace_xfs_perag_clear_reclaim(ip->i_mount, pag->pag_agno, in __xfs_inode_clear_reclaim()
801 xfs_perag_t *pag, in __xfs_inode_clear_reclaim_tag() argument
804 radix_tree_tag_clear(&pag->pag_ici_root, in __xfs_inode_clear_reclaim_tag()
806 __xfs_inode_clear_reclaim(pag, ip); in __xfs_inode_clear_reclaim_tag()
897 struct xfs_perag *pag, in xfs_reclaim_inode() argument
976 spin_lock(&pag->pag_ici_lock); in xfs_reclaim_inode()
977 if (!radix_tree_delete(&pag->pag_ici_root, in xfs_reclaim_inode()
980 __xfs_inode_clear_reclaim(pag, ip); in xfs_reclaim_inode()
981 spin_unlock(&pag->pag_ici_lock); in xfs_reclaim_inode()
1025 struct xfs_perag *pag; in xfs_reclaim_inodes_ag() local
1035 while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { in xfs_reclaim_inodes_ag()
1040 ag = pag->pag_agno + 1; in xfs_reclaim_inodes_ag()
1043 if (!mutex_trylock(&pag->pag_ici_reclaim_lock)) { in xfs_reclaim_inodes_ag()
1045 xfs_perag_put(pag); in xfs_reclaim_inodes_ag()
1048 first_index = pag->pag_ici_reclaim_cursor; in xfs_reclaim_inodes_ag()
1050 mutex_lock(&pag->pag_ici_reclaim_lock); in xfs_reclaim_inodes_ag()
1058 &pag->pag_ici_root, in xfs_reclaim_inodes_ag()
1093 pag->pag_agno) in xfs_reclaim_inodes_ag()
1106 error = xfs_reclaim_inode(batch[i], pag, flags); in xfs_reclaim_inodes_ag()
1118 pag->pag_ici_reclaim_cursor = first_index; in xfs_reclaim_inodes_ag()
1120 pag->pag_ici_reclaim_cursor = 0; in xfs_reclaim_inodes_ag()
1121 mutex_unlock(&pag->pag_ici_reclaim_lock); in xfs_reclaim_inodes_ag()
1122 xfs_perag_put(pag); in xfs_reclaim_inodes_ag()
1178 struct xfs_perag *pag; in xfs_reclaim_inodes_count() local
1182 while ((pag = xfs_perag_get_tag(mp, ag, XFS_ICI_RECLAIM_TAG))) { in xfs_reclaim_inodes_count()
1183 ag = pag->pag_agno + 1; in xfs_reclaim_inodes_count()
1184 reclaimable += pag->pag_ici_reclaimable; in xfs_reclaim_inodes_count()
1185 xfs_perag_put(pag); in xfs_reclaim_inodes_count()
1361 struct xfs_perag *pag; in xfs_inode_set_eofblocks_tag() local
1364 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_set_eofblocks_tag()
1365 spin_lock(&pag->pag_ici_lock); in xfs_inode_set_eofblocks_tag()
1368 tagged = radix_tree_tagged(&pag->pag_ici_root, in xfs_inode_set_eofblocks_tag()
1370 radix_tree_tag_set(&pag->pag_ici_root, in xfs_inode_set_eofblocks_tag()
1384 trace_xfs_perag_set_eofblocks(ip->i_mount, pag->pag_agno, in xfs_inode_set_eofblocks_tag()
1388 spin_unlock(&pag->pag_ici_lock); in xfs_inode_set_eofblocks_tag()
1389 xfs_perag_put(pag); in xfs_inode_set_eofblocks_tag()
1397 struct xfs_perag *pag; in xfs_inode_clear_eofblocks_tag() local
1399 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_inode_clear_eofblocks_tag()
1400 spin_lock(&pag->pag_ici_lock); in xfs_inode_clear_eofblocks_tag()
1403 radix_tree_tag_clear(&pag->pag_ici_root, in xfs_inode_clear_eofblocks_tag()
1406 if (!radix_tree_tagged(&pag->pag_ici_root, XFS_ICI_EOFBLOCKS_TAG)) { in xfs_inode_clear_eofblocks_tag()
1413 trace_xfs_perag_clear_eofblocks(ip->i_mount, pag->pag_agno, in xfs_inode_clear_eofblocks_tag()
1417 spin_unlock(&pag->pag_ici_lock); in xfs_inode_clear_eofblocks_tag()
1418 xfs_perag_put(pag); in xfs_inode_clear_eofblocks_tag()