Al, These are the patches to improve behaviour of copy_file_range() with respect to holes. If appropriate, please consider them for inclusion. If copy_file_range performs a copy using splice, it converts holes to zeros. This effort primarily changes this behavior to create holes when it is possible. Even if copy_file_range() or clone_file_range() does not work for different mounted filesystems, We should be able to splice files if they do not belong the same super_block. Testing: I ran fstests, especially generic/43[0-4] and the overlayfs tests. Besides also created new tests, however, it is waiitng on xfs_io fix for copy_range. I have written more test cases which perform cross filesystem copy_file_range() with holes`. I will post it once these patches are accepted. Changes since v2: - Added size check so it does not punch a zero size hole Changes since v1: - Fixed bug when hole/data offset is farther than len - [Amir] Refactor flags parameter Changes since v0: - [Amir] Carved out do_copy_file_range() which can be used by overlayfs -- Goldwyn