Hi all, I would like to move the generic helper functions that support the file remap range operations (aka clone and dedupe) to a separate file under fs/. For the moment, I have a few goals here: one is to declutter fs/read_write.c and mm/filemap.c. The second goal is to be able to deselect all the remap code if no filesystems require it. The third (and much more long term) goal is to have a place to land the generic code for the atomic file extent swap functionality, since it will reuse some of the functionality. Someday. Whenever I get around to submitting that again. AFAICT, nobody is attempting to land any major changes in any of the vfs remap functions during the 5.10 window -- for-next showed conflicts only in the Makefile, so it seems like a quiet enough time to do this. There are no functional changes here, it's just moving code blocks around. So, I have a few questions, particularly for Al, Andrew, and Linus: (1) Do you find this reorganizing acceptable? (2) I was planning to rebase this series next Friday and try to throw it in at the end of the merge window; is that ok? (The current patches are based on 5.9, and applying them manually to current master and for-next didn't show any new conflicts.) (3) Can I just grab the copyrights from mm/filemap.c? Or fs/read_write.c? Or something entirely different? If you're going to start using this mess, you probably ought to just pull from my git trees, which are linked below. This is an extraordinary way to destroy everything. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=vfs-rearrange-remap-helpers --- fs/Makefile | 3 fs/read_write.c | 473 ------------------------------------------- fs/remap_range.c | 577 ++++++++++++++++++++++++++++++++++++++++++++++++++++ include/linux/fs.h | 5 mm/filemap.c | 81 ------- 5 files changed, 582 insertions(+), 557 deletions(-) create mode 100644 fs/remap_range.c