Hi all, This is an RFC patchset implementing the GETFSMAP ioctl that we discussed at LSFMM 2016[1]. GETFSMAP takes two search keys, which are defined as a tuple of (device, physical block, owner, file offset), and returns all known space mapping information for the given filesystem. The XFS implementation is fully complete for filesystems having the new reverse-mapping feature introduced in 4.8. For legacy XFS filesystems and ext4, there is no reverse-mapping data and the returned extent information is restricted to listing "free", "unknown", or "metadata" owners. Space mapping information can be dumped via the xfs_io 'fsmap' command, and the upcoming xfs_spaceman utility analyzes the free extent data to produce free space fragmentations reports. Further in the future, the xfs_scrub utility will use GETFSMAP to assist in data block read verification. Kernel source can be found in the git repo [2] and userspace utilities in the git repo[3]. The XFS patches have been hanging around in my repos for months accumulating fixes; the ext4 patches are newish. Note: This patchset is targeted for 4.12 at the earliest. This new version contains all the fixes recommended by Brian Foster's review, most notably a refactoring of the space-record iterator functions to reduce duplicated code. Questions? Comments? --D [1] https://lwn.net/Articles/685978/ [2] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=djwong-devel [3] https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=djwong-devel