On Thu, Feb 18, 2021 at 4:35 PM Luis Henriques <lhenriques@xxxxxxx> wrote: > > A regression has been reported by Nicolas Boichat, found while using the > copy_file_range syscall to copy a tracefs file. Before commit > 5dae222a5ff0 ("vfs: allow copy_file_range to copy across devices") the > kernel would return -EXDEV to userspace when trying to copy a file across > different filesystems. After this commit, the syscall doesn't fail anymore > and instead returns zero (zero bytes copied), as this file's content is > generated on-the-fly and thus reports a size of zero. > > This patch restores some cross-filesystem copy restrictions that existed > prior to commit 5dae222a5ff0 ("vfs: allow copy_file_range to copy across > devices"). Filesystems are still allowed to fall-back to the VFS > generic_copy_file_range() implementation, but that has now to be done > explicitly. > Petr, Please note that the check for verify_cross_fs_copy_support() in LTP tests can no longer be used to determine if copy_file_range() is post v5.3. You will need to fix the tests to expect cross-fs failures (this change of behavior is supposed to be backported to stable kernels as well). I guess the copy_file_range() tests will need to use min_kver. Thanks, Amir.