Lines Matching refs:rmap
211 const struct xfs_rmap_irec *rmap) in xrep_refc_rmap_shareable() argument
214 if (XFS_RMAP_NON_INODE_OWNER(rmap->rm_owner)) in xrep_refc_rmap_shareable()
218 if (xfs_internal_inum(mp, rmap->rm_owner)) in xrep_refc_rmap_shareable()
222 if (rmap->rm_flags & (XFS_RMAP_ATTR_FORK | XFS_RMAP_BMBT_BLOCK | in xrep_refc_rmap_shareable()
236 struct xfs_rmap_irec *rmap, in xrep_refc_walk_rmaps() argument
262 error = xfs_rmap_get_rec(cur, rmap, &have_gt); in xrep_refc_walk_rmaps()
270 if (rmap->rm_owner == XFS_RMAP_OWN_COW) { in xrep_refc_walk_rmaps()
271 error = xrep_refc_stash_cow(rr, rmap->rm_startblock, in xrep_refc_walk_rmaps()
272 rmap->rm_blockcount); in xrep_refc_walk_rmaps()
275 } else if (rmap->rm_owner == XFS_RMAP_OWN_REFC) { in xrep_refc_walk_rmaps()
277 rr->btblocks += rmap->rm_blockcount; in xrep_refc_walk_rmaps()
279 rmap->rm_startblock, in xrep_refc_walk_rmaps()
280 rmap->rm_blockcount); in xrep_refc_walk_rmaps()
284 } while (!xrep_refc_rmap_shareable(mp, rmap)); in xrep_refc_walk_rmaps()
378 struct xfs_rmap_irec *rmap, in xrep_refc_push_rmaps_at() argument
385 while (*have && rmap->rm_startblock == bno) { in xrep_refc_push_rmaps_at()
386 error = rcbag_add(rcstack, rr->sc->tp, rmap); in xrep_refc_push_rmaps_at()
390 error = xrep_refc_walk_rmaps(rr, rmap, have); in xrep_refc_push_rmaps_at()
438 struct xfs_rmap_irec rmap; in xrep_refc_find_refcounts() local
441 error = xrep_refc_walk_rmaps(rr, &rmap, &have); in xrep_refc_find_refcounts()
446 sbno = cbno = rmap.rm_startblock; in xrep_refc_find_refcounts()
447 error = xrep_refc_push_rmaps_at(rr, rcstack, sbno, &rmap, in xrep_refc_find_refcounts()
453 error = rcbag_next_edge(rcstack, sc->tp, &rmap, have, &nbno); in xrep_refc_find_refcounts()
468 error = xrep_refc_walk_rmaps(rr, &rmap, &have); in xrep_refc_find_refcounts()
473 nbno, &rmap, &have); in xrep_refc_find_refcounts()
499 error = rcbag_next_edge(rcstack, sc->tp, &rmap, have, in xrep_refc_find_refcounts()