Hi. This is the 4th version of the complete series with the goal to deprecate and eventually remove ->bmap() interface, in lieu of FIEMAP. Besides the rebase of the patchset against latest Linus's tree, the only changes in this patchset regarding to the previous version, are concentrated in patches 4/9 and 8/9. In patch 4 (fibmap: Use bmap instead of ->bmap method in ioctl_fibmap), the difference compared with previous version, is a change in ioclt_fibmap() return value, I spotted while testing this new version with filesystems using data inlined in inodes. It now returns 0 in case of error instead an error value, otherwise it would be an user interface change. In patch 8 (Use FIEMAP for FIBMAP calls), there are minor changes regarding V3. It just contains a coding style fix pointed by Andreas in the previous version, but now, it also include changes to all filesystems which supports both FIEMAP and FIBMAP, and need some sort of special handling (like inlined data, reflinked inodes, etc). Again, Patch 9 is xfs-specific removal of ->bmap() interface, without any changes compared to the previous version. I do apologize for taking so long to rework this patchset, I've got busy with other stuff. Comments are appreciated, specially regarding if the error values returned by ioctl_fibmap() make sense. Cheers Carlos Maiolino (9): fs: Enable bmap() function to properly return errors cachefiles: drop direct usage of ->bmap method. ecryptfs: drop direct calls to ->bmap fibmap: Use bmap instead of ->bmap method in ioctl_fibmap fs: Move start and length fiemap fields into fiemap_extent_info iomap: Remove length and start fields from iomap_fiemap fiemap: Use a callback to fill fiemap extents Use FIEMAP for FIBMAP calls xfs: Get rid of ->bmap drivers/md/md-bitmap.c | 16 ++++-- fs/bad_inode.c | 3 +- fs/btrfs/inode.c | 5 +- fs/cachefiles/rdwr.c | 27 ++++----- fs/ecryptfs/mmap.c | 16 ++---- fs/ext2/ext2.h | 3 +- fs/ext2/inode.c | 6 +- fs/ext4/ext4.h | 3 +- fs/ext4/extents.c | 15 +++-- fs/f2fs/data.c | 15 ++++- fs/f2fs/f2fs.h | 3 +- fs/gfs2/inode.c | 9 ++- fs/hpfs/file.c | 4 +- fs/inode.c | 105 +++++++++++++++++++++++++++++---- fs/ioctl.c | 128 ++++++++++++++++++++++++++--------------- fs/iomap.c | 40 ++----------- fs/jbd2/journal.c | 22 ++++--- fs/nilfs2/inode.c | 5 +- fs/nilfs2/nilfs.h | 3 +- fs/ocfs2/extent_map.c | 13 ++++- fs/ocfs2/extent_map.h | 3 +- fs/overlayfs/inode.c | 5 +- fs/xfs/xfs_aops.c | 24 -------- fs/xfs/xfs_iops.c | 19 +++--- fs/xfs/xfs_trace.h | 1 - include/linux/fs.h | 33 +++++++---- include/linux/iomap.h | 2 +- mm/page_io.c | 11 ++-- 28 files changed, 320 insertions(+), 219 deletions(-) -- 2.20.1