Lines Matching refs:info
175 struct xfs_getfsmap_info *info);
194 struct xfs_getfsmap_info *info, in xfs_getfsmap_is_shared() argument
208 if (!info->pag) in xfs_getfsmap_is_shared()
213 cur = xfs_refcountbt_init_cursor(mp, tp, info->agf_bp, info->pag); in xfs_getfsmap_is_shared()
230 struct xfs_getfsmap_info *info) in xfs_getfsmap_format() argument
236 rec = &info->fsmap_recs[info->head->fmh_entries++]; in xfs_getfsmap_format()
247 struct xfs_getfsmap_info *info, in xfs_getfsmap_helper() argument
263 if (xfs_rmap_compare(rec, &info->low) < 0) { in xfs_getfsmap_helper()
265 if (info->next_daddr < rec_daddr) in xfs_getfsmap_helper()
266 info->next_daddr = rec_daddr; in xfs_getfsmap_helper()
271 if (info->head->fmh_count == 0) { in xfs_getfsmap_helper()
272 if (info->head->fmh_entries == UINT_MAX) in xfs_getfsmap_helper()
275 if (rec_daddr > info->next_daddr) in xfs_getfsmap_helper()
276 info->head->fmh_entries++; in xfs_getfsmap_helper()
278 if (info->last) in xfs_getfsmap_helper()
281 info->head->fmh_entries++; in xfs_getfsmap_helper()
284 if (info->next_daddr < rec_daddr) in xfs_getfsmap_helper()
285 info->next_daddr = rec_daddr; in xfs_getfsmap_helper()
294 if (rec_daddr > info->next_daddr) { in xfs_getfsmap_helper()
295 if (info->head->fmh_entries >= info->head->fmh_count) in xfs_getfsmap_helper()
298 fmr.fmr_device = info->dev; in xfs_getfsmap_helper()
299 fmr.fmr_physical = info->next_daddr; in xfs_getfsmap_helper()
300 fmr.fmr_owner = info->missing_owner; in xfs_getfsmap_helper()
302 fmr.fmr_length = rec_daddr - info->next_daddr; in xfs_getfsmap_helper()
304 xfs_getfsmap_format(mp, &fmr, info); in xfs_getfsmap_helper()
307 if (info->last) in xfs_getfsmap_helper()
311 if (info->head->fmh_entries >= info->head->fmh_count) in xfs_getfsmap_helper()
314 trace_xfs_fsmap_mapping(mp, info->dev, in xfs_getfsmap_helper()
315 info->pag ? info->pag->pag_agno : NULLAGNUMBER, rec); in xfs_getfsmap_helper()
317 fmr.fmr_device = info->dev; in xfs_getfsmap_helper()
331 error = xfs_getfsmap_is_shared(tp, info, rec, &shared); in xfs_getfsmap_helper()
338 xfs_getfsmap_format(mp, &fmr, info); in xfs_getfsmap_helper()
341 if (info->next_daddr < rec_daddr) in xfs_getfsmap_helper()
342 info->next_daddr = rec_daddr; in xfs_getfsmap_helper()
354 struct xfs_getfsmap_info *info = priv; in xfs_getfsmap_datadev_helper() local
361 return xfs_getfsmap_helper(cur->bc_tp, info, rec, rec_daddr); in xfs_getfsmap_datadev_helper()
372 struct xfs_getfsmap_info *info = priv; in xfs_getfsmap_datadev_bnobt_helper() local
385 return xfs_getfsmap_helper(cur->bc_tp, info, &irec, rec_daddr); in xfs_getfsmap_datadev_bnobt_helper()
408 struct xfs_getfsmap_info *info) in xfs_getfsmap_logdev() argument
415 info->low.rm_startblock = XFS_BB_TO_FSBT(mp, keys[0].fmr_physical); in xfs_getfsmap_logdev()
416 info->low.rm_offset = XFS_BB_TO_FSBT(mp, keys[0].fmr_offset); in xfs_getfsmap_logdev()
417 error = xfs_fsmap_owner_to_rmap(&info->low, keys); in xfs_getfsmap_logdev()
420 info->low.rm_blockcount = 0; in xfs_getfsmap_logdev()
421 xfs_getfsmap_set_irec_flags(&info->low, &keys[0]); in xfs_getfsmap_logdev()
423 error = xfs_fsmap_owner_to_rmap(&info->high, keys + 1); in xfs_getfsmap_logdev()
426 info->high.rm_startblock = -1U; in xfs_getfsmap_logdev()
427 info->high.rm_owner = ULLONG_MAX; in xfs_getfsmap_logdev()
428 info->high.rm_offset = ULLONG_MAX; in xfs_getfsmap_logdev()
429 info->high.rm_blockcount = 0; in xfs_getfsmap_logdev()
430 info->high.rm_flags = XFS_RMAP_KEY_FLAGS | XFS_RMAP_REC_FLAGS; in xfs_getfsmap_logdev()
431 info->missing_owner = XFS_FMR_OWN_FREE; in xfs_getfsmap_logdev()
433 trace_xfs_fsmap_low_key(mp, info->dev, NULLAGNUMBER, &info->low); in xfs_getfsmap_logdev()
434 trace_xfs_fsmap_high_key(mp, info->dev, NULLAGNUMBER, &info->high); in xfs_getfsmap_logdev()
446 return xfs_getfsmap_helper(tp, info, &rmap, 0); in xfs_getfsmap_logdev()
458 struct xfs_getfsmap_info *info = priv; in xfs_getfsmap_rtdev_rtbitmap_helper() local
469 return xfs_getfsmap_helper(tp, info, &irec, rec_daddr); in xfs_getfsmap_rtdev_rtbitmap_helper()
479 struct xfs_getfsmap_info *info) in __xfs_getfsmap_rtdev() argument
494 info->low.rm_startblock = start_fsb; in __xfs_getfsmap_rtdev()
495 error = xfs_fsmap_owner_to_rmap(&info->low, &keys[0]); in __xfs_getfsmap_rtdev()
498 info->low.rm_offset = XFS_BB_TO_FSBT(mp, keys[0].fmr_offset); in __xfs_getfsmap_rtdev()
499 info->low.rm_blockcount = 0; in __xfs_getfsmap_rtdev()
500 xfs_getfsmap_set_irec_flags(&info->low, &keys[0]); in __xfs_getfsmap_rtdev()
502 info->high.rm_startblock = end_fsb; in __xfs_getfsmap_rtdev()
503 error = xfs_fsmap_owner_to_rmap(&info->high, &keys[1]); in __xfs_getfsmap_rtdev()
506 info->high.rm_offset = XFS_BB_TO_FSBT(mp, keys[1].fmr_offset); in __xfs_getfsmap_rtdev()
507 info->high.rm_blockcount = 0; in __xfs_getfsmap_rtdev()
508 xfs_getfsmap_set_irec_flags(&info->high, &keys[1]); in __xfs_getfsmap_rtdev()
510 trace_xfs_fsmap_low_key(mp, info->dev, NULLAGNUMBER, &info->low); in __xfs_getfsmap_rtdev()
511 trace_xfs_fsmap_high_key(mp, info->dev, NULLAGNUMBER, &info->high); in __xfs_getfsmap_rtdev()
513 return query_fn(tp, info); in __xfs_getfsmap_rtdev()
520 struct xfs_getfsmap_info *info) in xfs_getfsmap_rtdev_rtbitmap_query() argument
533 alow.ar_startext = info->low.rm_startblock; in xfs_getfsmap_rtdev_rtbitmap_query()
534 ahigh.ar_startext = info->high.rm_startblock; in xfs_getfsmap_rtdev_rtbitmap_query()
539 xfs_getfsmap_rtdev_rtbitmap_helper, info); in xfs_getfsmap_rtdev_rtbitmap_query()
547 info->last = true; in xfs_getfsmap_rtdev_rtbitmap_query()
550 error = xfs_getfsmap_rtdev_rtbitmap_helper(tp, &ahigh, info); in xfs_getfsmap_rtdev_rtbitmap_query()
563 struct xfs_getfsmap_info *info) in xfs_getfsmap_rtdev_rtbitmap() argument
565 info->missing_owner = XFS_FMR_OWN_UNKNOWN; in xfs_getfsmap_rtdev_rtbitmap()
567 info); in xfs_getfsmap_rtdev_rtbitmap()
576 struct xfs_getfsmap_info *info, in __xfs_getfsmap_datadev() argument
604 info->low.rm_startblock = XFS_FSB_TO_AGBNO(mp, start_fsb); in __xfs_getfsmap_datadev()
605 info->low.rm_offset = XFS_BB_TO_FSBT(mp, keys[0].fmr_offset); in __xfs_getfsmap_datadev()
606 error = xfs_fsmap_owner_to_rmap(&info->low, &keys[0]); in __xfs_getfsmap_datadev()
609 info->low.rm_blockcount = 0; in __xfs_getfsmap_datadev()
610 xfs_getfsmap_set_irec_flags(&info->low, &keys[0]); in __xfs_getfsmap_datadev()
612 info->high.rm_startblock = -1U; in __xfs_getfsmap_datadev()
613 info->high.rm_owner = ULLONG_MAX; in __xfs_getfsmap_datadev()
614 info->high.rm_offset = ULLONG_MAX; in __xfs_getfsmap_datadev()
615 info->high.rm_blockcount = 0; in __xfs_getfsmap_datadev()
616 info->high.rm_flags = XFS_RMAP_KEY_FLAGS | XFS_RMAP_REC_FLAGS; in __xfs_getfsmap_datadev()
626 info->pag = pag; in __xfs_getfsmap_datadev()
628 info->high.rm_startblock = XFS_FSB_TO_AGBNO(mp, in __xfs_getfsmap_datadev()
630 info->high.rm_offset = XFS_BB_TO_FSBT(mp, in __xfs_getfsmap_datadev()
632 error = xfs_fsmap_owner_to_rmap(&info->high, &keys[1]); in __xfs_getfsmap_datadev()
635 xfs_getfsmap_set_irec_flags(&info->high, &keys[1]); in __xfs_getfsmap_datadev()
641 xfs_trans_brelse(tp, info->agf_bp); in __xfs_getfsmap_datadev()
642 info->agf_bp = NULL; in __xfs_getfsmap_datadev()
646 &info->agf_bp); in __xfs_getfsmap_datadev()
650 trace_xfs_fsmap_low_key(mp, info->dev, pag->pag_agno, in __xfs_getfsmap_datadev()
651 &info->low); in __xfs_getfsmap_datadev()
652 trace_xfs_fsmap_high_key(mp, info->dev, pag->pag_agno, in __xfs_getfsmap_datadev()
653 &info->high); in __xfs_getfsmap_datadev()
655 error = query_fn(tp, info, &bt_cur, priv); in __xfs_getfsmap_datadev()
664 info->low.rm_startblock = 0; in __xfs_getfsmap_datadev()
665 info->low.rm_owner = 0; in __xfs_getfsmap_datadev()
666 info->low.rm_offset = 0; in __xfs_getfsmap_datadev()
667 info->low.rm_flags = 0; in __xfs_getfsmap_datadev()
676 info->last = true; in __xfs_getfsmap_datadev()
677 error = query_fn(tp, info, &bt_cur, priv); in __xfs_getfsmap_datadev()
681 info->pag = NULL; in __xfs_getfsmap_datadev()
687 if (info->agf_bp) { in __xfs_getfsmap_datadev()
688 xfs_trans_brelse(tp, info->agf_bp); in __xfs_getfsmap_datadev()
689 info->agf_bp = NULL; in __xfs_getfsmap_datadev()
691 if (info->pag) { in __xfs_getfsmap_datadev()
692 xfs_perag_put(info->pag); in __xfs_getfsmap_datadev()
693 info->pag = NULL; in __xfs_getfsmap_datadev()
706 struct xfs_getfsmap_info *info, in xfs_getfsmap_datadev_rmapbt_query() argument
711 if (info->last) in xfs_getfsmap_datadev_rmapbt_query()
712 return xfs_getfsmap_datadev_helper(*curpp, &info->high, info); in xfs_getfsmap_datadev_rmapbt_query()
715 *curpp = xfs_rmapbt_init_cursor(tp->t_mountp, tp, info->agf_bp, in xfs_getfsmap_datadev_rmapbt_query()
716 info->pag); in xfs_getfsmap_datadev_rmapbt_query()
717 return xfs_rmap_query_range(*curpp, &info->low, &info->high, in xfs_getfsmap_datadev_rmapbt_query()
718 xfs_getfsmap_datadev_helper, info); in xfs_getfsmap_datadev_rmapbt_query()
726 struct xfs_getfsmap_info *info) in xfs_getfsmap_datadev_rmapbt() argument
728 info->missing_owner = XFS_FMR_OWN_FREE; in xfs_getfsmap_datadev_rmapbt()
729 return __xfs_getfsmap_datadev(tp, keys, info, in xfs_getfsmap_datadev_rmapbt()
737 struct xfs_getfsmap_info *info, in xfs_getfsmap_datadev_bnobt_query() argument
744 if (info->last) in xfs_getfsmap_datadev_bnobt_query()
745 return xfs_getfsmap_datadev_bnobt_helper(*curpp, &key[1], info); in xfs_getfsmap_datadev_bnobt_query()
748 *curpp = xfs_allocbt_init_cursor(tp->t_mountp, tp, info->agf_bp, in xfs_getfsmap_datadev_bnobt_query()
749 info->pag, XFS_BTNUM_BNO); in xfs_getfsmap_datadev_bnobt_query()
750 key->ar_startblock = info->low.rm_startblock; in xfs_getfsmap_datadev_bnobt_query()
751 key[1].ar_startblock = info->high.rm_startblock; in xfs_getfsmap_datadev_bnobt_query()
753 xfs_getfsmap_datadev_bnobt_helper, info); in xfs_getfsmap_datadev_bnobt_query()
761 struct xfs_getfsmap_info *info) in xfs_getfsmap_datadev_bnobt() argument
765 info->missing_owner = XFS_FMR_OWN_UNKNOWN; in xfs_getfsmap_datadev_bnobt()
766 return __xfs_getfsmap_datadev(tp, keys, info, in xfs_getfsmap_datadev_bnobt()
856 struct xfs_getfsmap_info info = { NULL }; in xfs_getfsmap() local
924 info.next_daddr = head->fmh_keys[0].fmr_physical + in xfs_getfsmap()
926 info.fsmap_recs = fsmap_recs; in xfs_getfsmap()
927 info.head = head; in xfs_getfsmap()
960 info.dev = handlers[i].dev; in xfs_getfsmap()
961 info.last = false; in xfs_getfsmap()
962 info.pag = NULL; in xfs_getfsmap()
963 error = handlers[i].fn(tp, dkeys, &info); in xfs_getfsmap()
968 info.next_daddr = 0; in xfs_getfsmap()