On 2023-06-02 09:31, Pádraig Brady wrote:
I'm not sure it was working correctly before 9.3 either.
Before 9.3 we would have switched from copy_file_range() to read()/write()

Actually, cp shouldn't have been using copy_file_range at all, as the code is supposed to never use copy_file_range unless the Linux kernel version is 5.3 or later. See m4/copy-file-range.m4 and lib/copy-file-range.c.

Since the bug is being reported against kernel 4.19, someone needs to investigate why the Gentoo build is using the copy_file_range syscall on that kernel. Either the Gentoo build isn't properly compiling the replacement function in coreutils/lib/copy-file-range.c, or the replacement function is incorrectly deciding that the kernel is new enough, or something like that.

We shouldn't need to fiddle with src/copy.c on this.



Reply via email to