Lines Matching refs:cmap

312 	struct xfs_bmbt_irec	*cmap,  in xfs_find_trim_cow_extent()  argument
326 if (!xfs_iext_lookup_extent(ip, ip->i_cowfp, offset_fsb, &icur, cmap)) in xfs_find_trim_cow_extent()
327 cmap->br_startoff = offset_fsb + count_fsb; in xfs_find_trim_cow_extent()
328 if (cmap->br_startoff > offset_fsb) { in xfs_find_trim_cow_extent()
330 cmap->br_startoff - imap->br_startoff); in xfs_find_trim_cow_extent()
335 if (isnullstartblock(cmap->br_startblock)) { in xfs_find_trim_cow_extent()
336 xfs_trim_extent(imap, cmap->br_startoff, cmap->br_blockcount); in xfs_find_trim_cow_extent()
341 xfs_trim_extent(cmap, offset_fsb, count_fsb); in xfs_find_trim_cow_extent()
350 struct xfs_bmbt_irec *cmap, in xfs_reflink_convert_unwritten() argument
360 xfs_trim_extent(cmap, offset_fsb, count_fsb); in xfs_reflink_convert_unwritten()
367 if (!convert_now || cmap->br_state == XFS_EXT_NORM) in xfs_reflink_convert_unwritten()
370 trace_xfs_reflink_convert_cow(ip, cmap); in xfs_reflink_convert_unwritten()
374 cmap->br_state = XFS_EXT_NORM; in xfs_reflink_convert_unwritten()
383 struct xfs_bmbt_irec *cmap, in xfs_reflink_fill_cow_hole() argument
410 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, &found); in xfs_reflink_fill_cow_hole()
422 XFS_BMAPI_COWFORK | XFS_BMAPI_PREALLOC, 0, cmap, in xfs_reflink_fill_cow_hole()
440 return xfs_reflink_convert_unwritten(ip, imap, cmap, convert_now); in xfs_reflink_fill_cow_hole()
451 struct xfs_bmbt_irec *cmap, in xfs_reflink_fill_delalloc() argument
473 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, in xfs_reflink_fill_delalloc()
483 ASSERT(isnullstartblock(cmap->br_startblock) || in xfs_reflink_fill_delalloc()
484 cmap->br_startblock == DELAYSTARTBLOCK); in xfs_reflink_fill_delalloc()
490 error = xfs_bmapi_write(tp, ip, cmap->br_startoff, in xfs_reflink_fill_delalloc()
491 cmap->br_blockcount, in xfs_reflink_fill_delalloc()
493 cmap, &nimaps); in xfs_reflink_fill_delalloc()
508 } while (cmap->br_startoff + cmap->br_blockcount <= imap->br_startoff); in xfs_reflink_fill_delalloc()
510 return xfs_reflink_convert_unwritten(ip, imap, cmap, convert_now); in xfs_reflink_fill_delalloc()
522 struct xfs_bmbt_irec *cmap, in xfs_reflink_allocate_cow() argument
536 error = xfs_find_trim_cow_extent(ip, imap, cmap, shared, &found); in xfs_reflink_allocate_cow()
542 return xfs_reflink_convert_unwritten(ip, imap, cmap, in xfs_reflink_allocate_cow()
549 if (cmap->br_startoff > imap->br_startoff) in xfs_reflink_allocate_cow()
550 return xfs_reflink_fill_cow_hole(ip, imap, cmap, shared, in xfs_reflink_allocate_cow()
557 if (isnullstartblock(cmap->br_startblock) || in xfs_reflink_allocate_cow()
558 cmap->br_startblock == DELAYSTARTBLOCK) in xfs_reflink_allocate_cow()
559 return xfs_reflink_fill_delalloc(ip, imap, cmap, shared, in xfs_reflink_allocate_cow()