Lines Matching refs:cur
44 * given by cur.
48 struct xfs_btree_cur *cur,
53 trace_xfs_refcount_lookup(cur->bc_mp, cur->bc_ag.pag->pag_agno,
56 cur->bc_rec.rc.rc_startblock = bno;
57 cur->bc_rec.rc.rc_blockcount = 0;
58 cur->bc_rec.rc.rc_domain = domain;
59 return xfs_btree_lookup(cur, XFS_LOOKUP_LE, stat);
64 * given by cur.
68 struct xfs_btree_cur *cur,
73 trace_xfs_refcount_lookup(cur->bc_mp, cur->bc_ag.pag->pag_agno,
76 cur->bc_rec.rc.rc_startblock = bno;
77 cur->bc_rec.rc.rc_blockcount = 0;
78 cur->bc_rec.rc.rc_domain = domain;
79 return xfs_btree_lookup(cur, XFS_LOOKUP_GE, stat);
84 * given by cur.
88 struct xfs_btree_cur *cur,
93 trace_xfs_refcount_lookup(cur->bc_mp, cur->bc_ag.pag->pag_agno,
96 cur->bc_rec.rc.rc_startblock = bno;
97 cur->bc_rec.rc.rc_blockcount = 0;
98 cur->bc_rec.rc.rc_domain = domain;
99 return xfs_btree_lookup(cur, XFS_LOOKUP_EQ, stat);
126 struct xfs_btree_cur *cur,
129 struct xfs_perag *pag = cur->bc_ag.pag;
149 struct xfs_btree_cur *cur,
153 struct xfs_mount *mp = cur->bc_mp;
157 cur->bc_ag.pag->pag_agno, fa);
169 struct xfs_btree_cur *cur,
177 error = xfs_btree_get_rec(cur, &rec, stat);
182 fa = xfs_refcount_check_irec(cur, irec);
184 return xfs_refcount_complain_bad_rec(cur, fa, irec);
186 trace_xfs_refcount_get(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
191 * Update the record referred to by cur to the value given
197 struct xfs_btree_cur *cur,
204 trace_xfs_refcount_update(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
212 error = xfs_btree_update(cur, &rec);
214 trace_xfs_refcount_update_error(cur->bc_mp,
215 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
220 * Insert the record referred to by cur to the value given
226 struct xfs_btree_cur *cur,
232 trace_xfs_refcount_insert(cur->bc_mp, cur->bc_ag.pag->pag_agno, irec);
234 cur->bc_rec.rc.rc_startblock = irec->rc_startblock;
235 cur->bc_rec.rc.rc_blockcount = irec->rc_blockcount;
236 cur->bc_rec.rc.rc_refcount = irec->rc_refcount;
237 cur->bc_rec.rc.rc_domain = irec->rc_domain;
239 error = xfs_btree_insert(cur, i);
242 if (XFS_IS_CORRUPT(cur->bc_mp, *i != 1)) {
249 trace_xfs_refcount_insert_error(cur->bc_mp,
250 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
255 * Remove the record referred to by cur, then set the pointer to the spot
262 struct xfs_btree_cur *cur,
269 error = xfs_refcount_get_rec(cur, &irec, &found_rec);
272 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
276 trace_xfs_refcount_delete(cur->bc_mp, cur->bc_ag.pag->pag_agno, &irec);
277 error = xfs_btree_delete(cur, i);
278 if (XFS_IS_CORRUPT(cur->bc_mp, *i != 1)) {
284 error = xfs_refcount_lookup_ge(cur, irec.rc_domain, irec.rc_startblock,
288 trace_xfs_refcount_delete_error(cur->bc_mp,
289 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
383 struct xfs_btree_cur *cur,
393 error = xfs_refcount_lookup_le(cur, domain, agbno, &found_rec);
399 error = xfs_refcount_get_rec(cur, &rcext, &found_rec);
402 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
412 trace_xfs_refcount_split_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
419 error = xfs_refcount_update(cur, &tmp);
426 error = xfs_refcount_insert(cur, &tmp, &found_rec);
429 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
436 trace_xfs_refcount_split_extent_error(cur->bc_mp,
437 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
446 struct xfs_btree_cur *cur,
456 trace_xfs_refcount_merge_center_extents(cur->bc_mp,
457 cur->bc_ag.pag->pag_agno, left, center, right);
470 error = xfs_refcount_lookup_ge(cur, center->rc_domain,
474 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
479 error = xfs_refcount_delete(cur, &found_rec);
482 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
488 error = xfs_refcount_delete(cur, &found_rec);
491 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
498 error = xfs_refcount_lookup_le(cur, left->rc_domain,
502 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
508 error = xfs_refcount_update(cur, left);
516 trace_xfs_refcount_merge_center_extents_error(cur->bc_mp,
517 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
526 struct xfs_btree_cur *cur,
535 trace_xfs_refcount_merge_left_extent(cur->bc_mp,
536 cur->bc_ag.pag->pag_agno, left, cleft);
542 error = xfs_refcount_lookup_le(cur, cleft->rc_domain,
546 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
551 error = xfs_refcount_delete(cur, &found_rec);
554 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
561 error = xfs_refcount_lookup_le(cur, left->rc_domain,
565 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
571 error = xfs_refcount_update(cur, left);
580 trace_xfs_refcount_merge_left_extent_error(cur->bc_mp,
581 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
590 struct xfs_btree_cur *cur,
598 trace_xfs_refcount_merge_right_extent(cur->bc_mp,
599 cur->bc_ag.pag->pag_agno, cright, right);
608 error = xfs_refcount_lookup_le(cur, cright->rc_domain,
612 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
617 error = xfs_refcount_delete(cur, &found_rec);
620 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
627 error = xfs_refcount_lookup_le(cur, right->rc_domain,
631 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
638 error = xfs_refcount_update(cur, right);
646 trace_xfs_refcount_merge_right_extent_error(cur->bc_mp,
647 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
657 struct xfs_btree_cur *cur,
669 error = xfs_refcount_lookup_le(cur, domain, agbno - 1, &found_rec);
675 error = xfs_refcount_get_rec(cur, &tmp, &found_rec);
678 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
690 error = xfs_btree_increment(cur, 0, &found_rec);
694 error = xfs_refcount_get_rec(cur, &tmp, &found_rec);
697 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
734 trace_xfs_refcount_find_left_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
739 trace_xfs_refcount_find_left_extent_error(cur->bc_mp,
740 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
750 struct xfs_btree_cur *cur,
762 error = xfs_refcount_lookup_ge(cur, domain, agbno + aglen, &found_rec);
768 error = xfs_refcount_get_rec(cur, &tmp, &found_rec);
771 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
783 error = xfs_btree_decrement(cur, 0, &found_rec);
787 error = xfs_refcount_get_rec(cur, &tmp, &found_rec);
790 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
827 trace_xfs_refcount_find_right_extent(cur->bc_mp, cur->bc_ag.pag->pag_agno,
832 trace_xfs_refcount_find_right_extent_error(cur->bc_mp,
833 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
975 struct xfs_btree_cur *cur,
994 error = xfs_refcount_find_left_extents(cur, &left, &cleft, domain,
998 error = xfs_refcount_find_right_extents(cur, &right, &cright, domain,
1014 return xfs_refcount_merge_center_extents(cur, &left, &cleft,
1021 error = xfs_refcount_merge_left_extent(cur, &left, &cleft,
1037 return xfs_refcount_merge_right_extent(cur, &right, &cright,
1052 struct xfs_btree_cur *cur)
1060 overhead = xfs_allocfree_block_count(cur->bc_mp,
1061 cur->bc_ag.refc.shape_changes);
1062 overhead += cur->bc_mp->m_refc_maxlevels;
1063 overhead *= cur->bc_mp->m_sb.sb_blocksize;
1069 if (cur->bc_ag.refc.nr_ops > 2 &&
1070 XFS_TEST_ERROR(false, cur->bc_mp,
1074 if (cur->bc_ag.refc.nr_ops == 0)
1076 else if (overhead > cur->bc_tp->t_log_res)
1078 return cur->bc_tp->t_log_res - overhead >
1079 cur->bc_ag.refc.nr_ops * XFS_REFCOUNT_ITEM_OVERHEAD;
1090 struct xfs_btree_cur *cur,
1104 error = xfs_refcount_lookup_ge(cur, XFS_REFC_DOMAIN_SHARED, *agbno,
1109 while (*aglen > 0 && xfs_refcount_still_have_space(cur)) {
1110 error = xfs_refcount_get_rec(cur, &ext, &found_rec);
1114 ext.rc_startblock = cur->bc_mp->m_sb.sb_agblocks;
1132 trace_xfs_refcount_modify_extent(cur->bc_mp,
1133 cur->bc_ag.pag->pag_agno, &tmp);
1139 cur->bc_ag.refc.nr_ops++;
1141 error = xfs_refcount_insert(cur, &tmp,
1145 if (XFS_IS_CORRUPT(cur->bc_mp,
1151 fsbno = XFS_AGB_TO_FSB(cur->bc_mp,
1152 cur->bc_ag.pag->pag_agno,
1154 error = xfs_free_extent_later(cur->bc_tp, fsbno,
1165 if (*aglen == 0 || !xfs_refcount_still_have_space(cur))
1169 error = xfs_refcount_lookup_ge(cur,
1183 if (XFS_IS_CORRUPT(cur->bc_mp, ext.rc_blockcount == 0) ||
1184 XFS_IS_CORRUPT(cur->bc_mp, ext.rc_blockcount > *aglen)) {
1196 trace_xfs_refcount_modify_extent(cur->bc_mp,
1197 cur->bc_ag.pag->pag_agno, &ext);
1198 cur->bc_ag.refc.nr_ops++;
1200 error = xfs_refcount_update(cur, &ext);
1204 error = xfs_refcount_delete(cur, &found_rec);
1207 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
1213 fsbno = XFS_AGB_TO_FSB(cur->bc_mp,
1214 cur->bc_ag.pag->pag_agno,
1216 error = xfs_free_extent_later(cur->bc_tp, fsbno,
1224 error = xfs_btree_increment(cur, 0, &found_rec);
1235 trace_xfs_refcount_modify_extent_error(cur->bc_mp,
1236 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
1243 struct xfs_btree_cur *cur,
1253 trace_xfs_refcount_increase(cur->bc_mp,
1254 cur->bc_ag.pag->pag_agno, *agbno, *aglen);
1256 trace_xfs_refcount_decrease(cur->bc_mp,
1257 cur->bc_ag.pag->pag_agno, *agbno, *aglen);
1262 error = xfs_refcount_split_extent(cur, XFS_REFC_DOMAIN_SHARED,
1269 error = xfs_refcount_split_extent(cur, XFS_REFC_DOMAIN_SHARED,
1279 error = xfs_refcount_merge_extents(cur, XFS_REFC_DOMAIN_SHARED,
1286 cur->bc_ag.refc.shape_changes++;
1289 error = xfs_refcount_adjust_extents(cur, agbno, aglen, adj);
1296 trace_xfs_refcount_adjust_error(cur->bc_mp, cur->bc_ag.pag->pag_agno,
1324 struct xfs_btree_cur *cur,
1328 struct xfs_mount *mp = cur->bc_mp;
1329 struct xfs_perag *pag = cur->bc_ag.pag;
1504 struct xfs_btree_cur *cur,
1516 trace_xfs_refcount_find_shared(cur->bc_mp, cur->bc_ag.pag->pag_agno,
1524 error = xfs_refcount_lookup_le(cur, XFS_REFC_DOMAIN_SHARED, agbno,
1530 error = xfs_btree_increment(cur, 0, &have);
1536 error = xfs_refcount_get_rec(cur, &tmp, &i);
1539 if (XFS_IS_CORRUPT(cur->bc_mp, i != 1)) {
1548 error = xfs_btree_increment(cur, 0, &have);
1553 error = xfs_refcount_get_rec(cur, &tmp, &i);
1556 if (XFS_IS_CORRUPT(cur->bc_mp, i != 1)) {
1581 error = xfs_btree_increment(cur, 0, &have);
1586 error = xfs_refcount_get_rec(cur, &tmp, &i);
1589 if (XFS_IS_CORRUPT(cur->bc_mp, i != 1)) {
1601 trace_xfs_refcount_find_shared_result(cur->bc_mp,
1602 cur->bc_ag.pag->pag_agno, *fbno, *flen);
1606 trace_xfs_refcount_find_shared_error(cur->bc_mp,
1607 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
1665 struct xfs_btree_cur *cur,
1678 error = xfs_refcount_lookup_ge(cur, XFS_REFC_DOMAIN_COW, agbno,
1682 error = xfs_refcount_get_rec(cur, &ext, &found_rec);
1685 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec &&
1691 ext.rc_startblock = cur->bc_mp->m_sb.sb_agblocks;
1700 if (XFS_IS_CORRUPT(cur->bc_mp,
1711 trace_xfs_refcount_modify_extent(cur->bc_mp,
1712 cur->bc_ag.pag->pag_agno, &tmp);
1714 error = xfs_refcount_insert(cur, &tmp,
1718 if (XFS_IS_CORRUPT(cur->bc_mp, found_tmp != 1)) {
1725 if (XFS_IS_CORRUPT(cur->bc_mp, ext.rc_startblock != agbno)) {
1729 if (XFS_IS_CORRUPT(cur->bc_mp, ext.rc_blockcount != aglen)) {
1733 if (XFS_IS_CORRUPT(cur->bc_mp, ext.rc_refcount != 1)) {
1739 trace_xfs_refcount_modify_extent(cur->bc_mp,
1740 cur->bc_ag.pag->pag_agno, &ext);
1741 error = xfs_refcount_delete(cur, &found_rec);
1744 if (XFS_IS_CORRUPT(cur->bc_mp, found_rec != 1)) {
1755 trace_xfs_refcount_modify_extent_error(cur->bc_mp,
1756 cur->bc_ag.pag->pag_agno, error, _RET_IP_);
1765 struct xfs_btree_cur *cur,
1776 error = xfs_refcount_split_extent(cur, XFS_REFC_DOMAIN_COW,
1781 error = xfs_refcount_split_extent(cur, XFS_REFC_DOMAIN_COW,
1789 error = xfs_refcount_merge_extents(cur, XFS_REFC_DOMAIN_COW, &agbno,
1795 error = xfs_refcount_adjust_cow_extents(cur, agbno, aglen, adj);
1802 trace_xfs_refcount_adjust_cow_error(cur->bc_mp, cur->bc_ag.pag->pag_agno,
1886 struct xfs_btree_cur *cur,
1893 if (XFS_IS_CORRUPT(cur->bc_mp,
1902 if (xfs_refcount_check_irec(cur, &rr->rr_rrec) != NULL ||
1903 XFS_IS_CORRUPT(cur->bc_mp,
1920 struct xfs_btree_cur *cur;
1958 cur = xfs_refcountbt_init_cursor(mp, tp, agbp, pag);
1961 error = xfs_btree_query_range(cur, &low, &high,
1963 xfs_btree_del_cursor(cur, error);
2018 struct xfs_btree_cur *cur,
2033 return xfs_btree_has_records(cur, &low, &high, NULL, outcome);