[PATCH 5.10 0/2] cross-fs copy_file_range() fixes for stable

Amir Goldstein
2022-12-13T13:13:59Z

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@gmail.com/
[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