Create two helper functions to assist with mapping, unmapping, and converting flag status of extents in a file's data/attr forks. For non-shared files we can use the _alloc, _free, and _convert functions; when reflink comes these functions will be augmented to deal with shared extents. Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx> --- libxfs/xfs_rmap.c | 42 ++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 42 insertions(+) diff --git a/libxfs/xfs_rmap.c b/libxfs/xfs_rmap.c index 3c13fac..47f37d7 100644 --- a/libxfs/xfs_rmap.c +++ b/libxfs/xfs_rmap.c @@ -1121,11 +1121,53 @@ done: return error; } +/* + * Convert an unwritten extent to a real extent or vice versa. + */ +STATIC int +xfs_rmap_convert( + struct xfs_btree_cur *cur, + xfs_agblock_t bno, + xfs_extlen_t len, + bool unwritten, + struct xfs_owner_info *oinfo) +{ + return __xfs_rmap_convert(cur, bno, len, unwritten, oinfo); +} + #undef NEW #undef LEFT #undef RIGHT #undef PREV +/* + * Find an extent in the rmap btree and unmap it. + */ +STATIC int +xfs_rmap_unmap( + struct xfs_btree_cur *cur, + xfs_agblock_t bno, + xfs_extlen_t len, + bool unwritten, + struct xfs_owner_info *oinfo) +{ + return __xfs_rmap_free(cur, bno, len, unwritten, oinfo); +} + +/* + * Find an extent in the rmap btree and map it. + */ +STATIC int +xfs_rmap_map( + struct xfs_btree_cur *cur, + xfs_agblock_t bno, + xfs_extlen_t len, + bool unwritten, + struct xfs_owner_info *oinfo) +{ + return __xfs_rmap_alloc(cur, bno, len, unwritten, oinfo); +} + struct xfs_rmapbt_query_range_info { xfs_rmapbt_query_range_fn fn; void *priv; _______________________________________________ xfs mailing list xfs@xxxxxxxxxxx http://oss.sgi.com/mailman/listinfo/xfs