Lines Matching refs:imap
282 struct xfs_bmbt_irec *imap, in xfs_bmap_trim_cow() argument
287 !isnullstartblock(imap->br_startblock)) { in xfs_bmap_trim_cow()
293 return xfs_reflink_trim_around_shared(ip, imap, shared); in xfs_bmap_trim_cow()
363 struct xfs_bmbt_irec *imap, in xfs_find_trim_cow_extent() argument
368 xfs_fileoff_t offset_fsb = imap->br_startoff; in xfs_find_trim_cow_extent()
369 xfs_filblks_t count_fsb = imap->br_blockcount; in xfs_find_trim_cow_extent()
381 xfs_trim_extent(imap, imap->br_startoff, in xfs_find_trim_cow_extent()
382 cmap->br_startoff - imap->br_startoff); in xfs_find_trim_cow_extent()
383 return xfs_bmap_trim_cow(ip, imap, shared); in xfs_find_trim_cow_extent()
388 xfs_trim_extent(imap, cmap->br_startoff, cmap->br_blockcount); in xfs_find_trim_cow_extent()
401 struct xfs_bmbt_irec *imap, in xfs_reflink_convert_unwritten() argument
405 xfs_fileoff_t offset_fsb = imap->br_startoff; in xfs_reflink_convert_unwritten()
406 xfs_filblks_t count_fsb = imap->br_blockcount; in xfs_reflink_convert_unwritten()
434 struct xfs_bmbt_irec *imap, in xfs_reflink_fill_cow_hole() argument
448 resaligned = xfs_aligned_fsb_count(imap->br_startoff, in xfs_reflink_fill_cow_hole()
449 imap->br_blockcount, xfs_get_cowextsz_hint(ip)); in xfs_reflink_fill_cow_hole()
468 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, &found); in xfs_reflink_fill_cow_hole()
479 error = xfs_bmapi_write(tp, ip, imap->br_startoff, imap->br_blockcount, in xfs_reflink_fill_cow_hole()
491 return xfs_reflink_convert_unwritten(ip, imap, cmap, convert_now); in xfs_reflink_fill_cow_hole()
501 struct xfs_bmbt_irec *imap, in xfs_reflink_fill_delalloc() argument
524 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, in xfs_reflink_fill_delalloc()
552 } while (cmap->br_startoff + cmap->br_blockcount <= imap->br_startoff); in xfs_reflink_fill_delalloc()
554 return xfs_reflink_convert_unwritten(ip, imap, cmap, convert_now); in xfs_reflink_fill_delalloc()
565 struct xfs_bmbt_irec *imap, in xfs_reflink_allocate_cow() argument
580 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, &found); in xfs_reflink_allocate_cow()
586 return xfs_reflink_convert_unwritten(ip, imap, cmap, in xfs_reflink_allocate_cow()
593 if (cmap->br_startoff > imap->br_startoff) in xfs_reflink_allocate_cow()
594 return xfs_reflink_fill_cow_hole(ip, imap, cmap, shared, in xfs_reflink_allocate_cow()
603 return xfs_reflink_fill_delalloc(ip, imap, cmap, shared, in xfs_reflink_allocate_cow()
1457 struct xfs_bmbt_irec imap; in xfs_reflink_remap_blocks() local
1478 error = xfs_bmapi_read(src, srcoff, len, &imap, &nimaps, 0); in xfs_reflink_remap_blocks()
1489 ASSERT(nimaps == 1 && imap.br_startoff == srcoff); in xfs_reflink_remap_blocks()
1490 if (imap.br_startblock == DELAYSTARTBLOCK) { in xfs_reflink_remap_blocks()
1491 ASSERT(imap.br_startblock != DELAYSTARTBLOCK); in xfs_reflink_remap_blocks()
1497 trace_xfs_reflink_remap_extent_src(src, &imap); in xfs_reflink_remap_blocks()
1500 imap.br_startoff = destoff; in xfs_reflink_remap_blocks()
1501 error = xfs_reflink_remap_extent(dest, &imap, new_isize); in xfs_reflink_remap_blocks()
1511 srcoff += imap.br_blockcount; in xfs_reflink_remap_blocks()
1512 destoff += imap.br_blockcount; in xfs_reflink_remap_blocks()
1513 len -= imap.br_blockcount; in xfs_reflink_remap_blocks()
1514 remapped_len += imap.br_blockcount; in xfs_reflink_remap_blocks()