summaryrefslogtreecommitdiff
path: root/fs/xfs/xfs_bmap_util.h
diff options
context:
space:
mode:
authorChristoph Hellwig <hch@lst.de>2017-10-17 14:16:18 -0700
committerDarrick J. Wong <darrick.wong@oracle.com>2017-10-26 15:38:20 -0700
commitabbf9e8a45074844efc91990a75dfe47fab70fa6 (patch)
tree3a15894b3b502d6bb452f39d8665cc9aca4e38ea /fs/xfs/xfs_bmap_util.h
parent15f859ae5c43c7f0a064ed92d33f7a5bc5de6de0 (diff)
xfs: rewrite getbmap using the xfs_iext_* helpers
Currently getbmap uses xfs_bmapi_read to query the extent map, and then fixes up various bits that are eventually reported to userspace. This patch instead rewrites it to use xfs_iext_lookup_extent and xfs_iext_get_extent to iteratively process the extent map. This not only avoids the need to allocate a map for the returned xfs_bmbt_irec structures but also greatly simplified the code. There are two intentional behavior changes compared to the old code: - the current code reports unwritten extents that don't directly border a written one as unwritten even when not passing the BMV_IF_PREALLOC option, contrary to the documentation. The new code requires the BMV_IF_PREALLOC flag to report the unwrittent extent bit. - The new code does never merges consecutive extents, unlike the old code that sometimes does it based on the boundaries of the xfs_bmapi_read calls. Note that the extent merging behavior was entirely undocumented. Signed-off-by: Christoph Hellwig <hch@lst.de> Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com> Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
Diffstat (limited to 'fs/xfs/xfs_bmap_util.h')
0 files changed, 0 insertions, 0 deletions