Greg, The recent history of copy_file_range() API is somewhat convoluted. The API changes are documented in copy_file_range(2) man page. I've just posted a man page update patch [1] to fix some wrong kernel version references in the man page. The problem is that it took many kernel releases to get reports on the regression from v5.3 and yet more releases (v5.12..v5.19) to work on the solution and get it merged. This situation leads to confusion among users as can be seen in [2]. You've already picked the patch [1/2] to 5.15.y and I sent you a request to pick patch [2/2] (from v6.1) as well. Following are backports of the two patches to 5.10.y, which I verified with the relevant test in fstests. Backport to 5.4.y is more challenging because Darrick did a lot of cleanup in that area between v5.4..v5.10, so I did not do it. Thanks, Amir. [1] https://lore.kernel.org/linux-fsdevel/20221213120834.948163-1-amir73il@xxxxxxxxx/ [2] https://bugzilla.kernel.org/show_bug.cgi?id=216800 Amir Goldstein (2): vfs: fix copy_file_range() regression in cross-fs copies vfs: fix copy_file_range() averts filesystem freeze protection fs/nfsd/vfs.c | 8 ++++- fs/read_write.c | 90 +++++++++++++++++++++++++++++++++--------------------- include/linux/fs.h | 8 +++++ 3 files changed, 70 insertions(+), 36 deletions(-) -- 2.16.5