From: Olga Kornievskaia <kolga@xxxxxxxxxx> If a filesystem does not support cross device or cross file system type copy offload functionality, then this patch provides a fallback to a page cache based physical data copy. This means the copy_file_range() systemcall will never fail with EXDEV, and so in future userspace will not need to detect or provide a fallback for failed cross-device copies anymore. Signed-off-by: Olga Kornievskaia <kolga@xxxxxxxxxx> --- fs/read_write.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/read_write.c b/fs/read_write.c index 7a912e3..cff59bd 100644 --- a/fs/read_write.c +++ b/fs/read_write.c @@ -1597,7 +1597,7 @@ ssize_t vfs_copy_file_range(struct file *file_in, loff_t pos_in, if (file_out->f_op->copy_file_range) { ret = file_out->f_op->copy_file_range(file_in, pos_in, file_out, pos_out, len, flags); - if (ret != -EOPNOTSUPP) + if (ret != -EOPNOTSUPP && ret != -EXDEV) goto done; } -- 1.8.3.1