Here's an update of a patch queue that implements iomap in gfs2, switches fiemap over to use iomap, and now also implements lseek SEEK_HOLE and SEEK_DATA on top of iomap as well. Several issues with the previous version of this patch queue have been fixed: * Adds a IOMAP_F_BOUNDARY iomap flag that indicates when iomap has reached a "metadata boundary", and fetching the next mapping is likely to incur an additional I/O. This flag is used to set the bh buffer boundary flag. * lseek SEEK_HOLE / SEEK_DATA is now implemented using a vfs helper and some filesystem wiring-up code. This could be made generic if the iomap_ops are exposed at the vfs level. * Rounding fixes now that gfs2_get_iomap takes byte numbers instead of block numbers. * Fixes to make gfs2_get_iomap work beyond EOF (needed for allocations). * Glock lock taking has been moved from gfs2_get_iomap to its callers; it made no sense to drop glocks when iterating mappings. * The gfs2_iomap tracepoint is now split into gfs2_iomap_start and gfs2_iomap_end. This patch queue still doesn't handle multi-page writes via iomap, but having reasonable fiemap and lseek implementations is a start at least. Thanks, Andreas Andreas Gruenbacher (1): gfs2: Implement lseek SEEK_HOLE / SEEK_DATA via iomap Bob Peterson (3): GFS2: Make height info part of metapath GFS2: Implement iomap for block_map GFS2: Switch fiemap implementation to use iomap fs/gfs2/Kconfig | 1 + fs/gfs2/bmap.c | 292 ++++++++++++++++++++++++++++++++++++-------------- fs/gfs2/bmap.h | 4 + fs/gfs2/file.c | 14 ++- fs/gfs2/inode.c | 54 ++++++++-- fs/gfs2/inode.h | 1 + fs/gfs2/trace_gfs2.h | 65 +++++++++++ fs/iomap.c | 55 ++++++++++ include/linux/iomap.h | 5 +- 9 files changed, 398 insertions(+), 93 deletions(-) -- 2.7.4