[PATCH] erofs-utils: lib: fallback for copy_file_range

Yifan Zhao zhaoyifan at sjtu.edu.cn
Sun Jun 25 18:08:19 AEST 2023


If tmpfs is used for /tmp and blob device is not specified, we need to
copy data between two different file systems during mkfs, which is not
supported by the copy_file_range() syscall. In this case, let's give it
a second chance by fallback to __erofs_copy_file_range().

Signed-off-by: Yifan Zhao <zhaoyifan at sjtu.edu.cn>
---
 lib/io.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/io.c b/lib/io.c
index 9d718ab..1d266a5 100644
--- a/lib/io.c
+++ b/lib/io.c
@@ -387,7 +387,7 @@ ssize_t erofs_copy_file_range(int fd_in, erofs_off_t *off_in,
 			      length, 0);
 	if (ret >= 0)
 		goto out;
-	if (errno != ENOSYS) {
+	if (errno != ENOSYS && errno != EXDEV) {
 		ret = -errno;
 out:
 		*off_in = off64_in;
-- 
2.41.0



More information about the Linux-erofs mailing list