From 7a163cc0ad11b0a3f228ab131f0d29368516f286 Mon Sep 17 00:00:00 2001 From: The8472 Date: Thu, 12 Nov 2020 23:46:05 +0100 Subject: [PATCH] limit chunk size for copy_file_range to 1GB per iteration This will hopefully avoid EOVERFLOW errors on mipsel-unknown-linux-gnu But the error will remain unhandled if it still occurs. Proper handling is left to a future change. --- library/std/src/sys/unix/fs.rs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/library/std/src/sys/unix/fs.rs b/library/std/src/sys/unix/fs.rs index 566ac0920dc8f..597dc70422f21 100644 --- a/library/std/src/sys/unix/fs.rs +++ b/library/std/src/sys/unix/fs.rs @@ -1147,7 +1147,7 @@ pub fn copy(from: &Path, to: &Path) -> io::Result { let mut written = 0u64; while written < max_len { let copy_result = if has_copy_file_range { - let bytes_to_copy = cmp::min(max_len - written, usize::MAX as u64) as usize; + let bytes_to_copy = cmp::min(max_len - written, 0x4000_0000 as u64) as usize; let copy_result = unsafe { // We actually don't have to adjust the offsets, // because copy_file_range adjusts the file offset automatically