Lines Matching refs:pag
48 STATIC int xfs_iunlink_remove(struct xfs_trans *tp, struct xfs_perag *pag,
1276 struct xfs_perag *pag; in xfs_link() local
1278 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, sip->i_ino)); in xfs_link()
1279 error = xfs_iunlink_remove(tp, pag, sip); in xfs_link()
1280 xfs_perag_put(pag); in xfs_link()
1881 struct xfs_perag *pag, in xfs_iunlink_lookup_backref() argument
1886 iu = rhashtable_lookup_fast(&pag->pagi_unlinked_hash, &agino, in xfs_iunlink_lookup_backref()
1898 struct xfs_perag *pag, in xfs_iunlink_insert_backref() argument
1903 error = rhashtable_insert_fast(&pag->pagi_unlinked_hash, in xfs_iunlink_insert_backref()
1927 struct xfs_perag *pag, in xfs_iunlink_add_backref() argument
1933 if (XFS_TEST_ERROR(false, pag->pag_mount, XFS_ERRTAG_IUNLINK_FALLBACK)) in xfs_iunlink_add_backref()
1940 return xfs_iunlink_insert_backref(pag, iu); in xfs_iunlink_add_backref()
1950 struct xfs_perag *pag, in xfs_iunlink_change_backref() argument
1958 iu = rhashtable_lookup_fast(&pag->pagi_unlinked_hash, &agino, in xfs_iunlink_change_backref()
1971 error = rhashtable_remove_fast(&pag->pagi_unlinked_hash, in xfs_iunlink_change_backref()
1984 return xfs_iunlink_insert_backref(pag, iu); in xfs_iunlink_change_backref()
1990 struct xfs_perag *pag) in xfs_iunlink_init() argument
1992 return rhashtable_init(&pag->pagi_unlinked_hash, in xfs_iunlink_init()
2011 struct xfs_perag *pag) in xfs_iunlink_destroy() argument
2015 rhashtable_free_and_destroy(&pag->pagi_unlinked_hash, in xfs_iunlink_destroy()
2018 ASSERT(freed_anything == false || xfs_is_shutdown(pag->pag_mount)); in xfs_iunlink_destroy()
2028 struct xfs_perag *pag, in xfs_iunlink_update_bucket() argument
2037 ASSERT(xfs_verify_agino_or_null(tp->t_mountp, pag->pag_agno, new_agino)); in xfs_iunlink_update_bucket()
2040 trace_xfs_iunlink_update_bucket(tp->t_mountp, pag->pag_agno, bucket_index, in xfs_iunlink_update_bucket()
2064 struct xfs_perag *pag, in xfs_iunlink_update_dinode() argument
2074 ASSERT(xfs_verify_agino_or_null(mp, pag->pag_agno, next_agino)); in xfs_iunlink_update_dinode()
2076 trace_xfs_iunlink_update_dinode(mp, pag->pag_agno, agino, in xfs_iunlink_update_dinode()
2094 struct xfs_perag *pag, in xfs_iunlink_update_inode() argument
2104 ASSERT(xfs_verify_agino_or_null(mp, pag->pag_agno, next_agino)); in xfs_iunlink_update_inode()
2113 if (!xfs_verify_agino_or_null(mp, pag->pag_agno, old_value)) { in xfs_iunlink_update_inode()
2136 xfs_iunlink_update_dinode(tp, pag, XFS_INO_TO_AGINO(mp, ip->i_ino), in xfs_iunlink_update_inode()
2157 struct xfs_perag *pag; in xfs_iunlink() local
2169 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_iunlink()
2172 error = xfs_read_agi(mp, tp, pag->pag_agno, &agibp); in xfs_iunlink()
2184 !xfs_verify_agino_or_null(mp, pag->pag_agno, next_agino)) { in xfs_iunlink()
2197 error = xfs_iunlink_update_inode(tp, ip, pag, next_agino, in xfs_iunlink()
2207 error = xfs_iunlink_add_backref(pag, agino, next_agino); in xfs_iunlink()
2213 error = xfs_iunlink_update_bucket(tp, pag, agibp, bucket_index, agino); in xfs_iunlink()
2215 xfs_perag_put(pag); in xfs_iunlink()
2264 struct xfs_perag *pag, in xfs_iunlink_map_prev() argument
2280 *agino = xfs_iunlink_lookup_backref(pag, target_agino); in xfs_iunlink_map_prev()
2282 error = xfs_iunlink_map_ino(tp, pag->pag_agno, *agino, imap, in xfs_iunlink_map_prev()
2299 trace_xfs_iunlink_map_prev_fallback(mp, pag->pag_agno); in xfs_iunlink_map_prev()
2310 error = xfs_iunlink_map_ino(tp, pag->pag_agno, next_agino, imap, in xfs_iunlink_map_prev()
2320 if (!xfs_verify_agino(mp, pag->pag_agno, unlinked_agino) || in xfs_iunlink_map_prev()
2340 struct xfs_perag *pag, in xfs_iunlink_remove() argument
2357 error = xfs_read_agi(mp, tp, pag->pag_agno, &agibp); in xfs_iunlink_remove()
2367 if (!xfs_verify_agino(mp, pag->pag_agno, head_agino)) { in xfs_iunlink_remove()
2378 error = xfs_iunlink_update_inode(tp, ip, pag, NULLAGINO, &next_agino); in xfs_iunlink_remove()
2390 error = xfs_iunlink_change_backref(pag, next_agino, NULLAGINO); in xfs_iunlink_remove()
2400 error = xfs_iunlink_map_prev(tp, pag, head_agino, agino, in xfs_iunlink_remove()
2406 xfs_iunlink_update_dinode(tp, pag, prev_agino, last_ibp, in xfs_iunlink_remove()
2422 return xfs_iunlink_update_bucket(tp, pag, agibp, bucket_index, in xfs_iunlink_remove()
2433 struct xfs_perag *pag, in xfs_ifree_mark_inode_stale() argument
2437 struct xfs_mount *mp = pag->pag_mount; in xfs_ifree_mark_inode_stale()
2443 ip = radix_tree_lookup(&pag->pag_ici_root, XFS_INO_TO_AGINO(mp, inum)); in xfs_ifree_mark_inode_stale()
2530 struct xfs_perag *pag, in xfs_ifree_cluster() argument
2593 xfs_ifree_mark_inode_stale(pag, free_ip, inum + i); in xfs_ifree_cluster()
2616 struct xfs_perag *pag; in xfs_ifree() local
2627 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, ip->i_ino)); in xfs_ifree()
2635 error = xfs_difree(tp, pag, ip->i_ino, &xic); in xfs_ifree()
2639 error = xfs_iunlink_remove(tp, pag, ip); in xfs_ifree()
2675 error = xfs_ifree_cluster(tp, pag, ip, &xic); in xfs_ifree()
2677 xfs_perag_put(pag); in xfs_ifree()
3316 struct xfs_perag *pag; in xfs_rename() local
3320 pag = xfs_perag_get(mp, XFS_INO_TO_AGNO(mp, wip->i_ino)); in xfs_rename()
3321 error = xfs_iunlink_remove(tp, pag, wip); in xfs_rename()
3322 xfs_perag_put(pag); in xfs_rename()