diff options
author | Christoph Hellwig <hch@lst.de> | 2017-10-17 14:16:18 -0700 |
---|---|---|
committer | Darrick J. Wong <darrick.wong@oracle.com> | 2017-10-26 15:38:20 -0700 |
commit | abbf9e8a45074844efc91990a75dfe47fab70fa6 (patch) | |
tree | 3a15894b3b502d6bb452f39d8665cc9aca4e38ea /fs/nfs_common | |
parent | 15f859ae5c43c7f0a064ed92d33f7a5bc5de6de0 (diff) | |
download | linux-abbf9e8a45074844efc91990a75dfe47fab70fa6.tar.bz2 |
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/nfs_common')
0 files changed, 0 insertions, 0 deletions