about summary refs log tree commit diff
path: root/library/std/src/sys
diff options
context:
space:
mode:
authorAlex Saveau <saveau.alexandre+tmp@gmail.com>2024-12-17 12:40:39 -0500
committerAlex Saveau <saveau.alexandre@gmail.com>2024-12-21 12:20:58 -0800
commit73b41fbcfacb8fcc5a8be3ffa849abcd543069b6 (patch)
tree9b48716482f7193af1f4db9d992d46fc748db657 /library/std/src/sys
parent387b245664a81f58260a6b565aa0b2fdf19752fb (diff)
downloadrust-73b41fbcfacb8fcc5a8be3ffa849abcd543069b6.tar.gz
rust-73b41fbcfacb8fcc5a8be3ffa849abcd543069b6.zip
Unify fs::copy and io::copy
Diffstat (limited to 'library/std/src/sys')
-rw-r--r--library/std/src/sys/pal/unix/fs.rs20
1 files changed, 1 insertions, 19 deletions
diff --git a/library/std/src/sys/pal/unix/fs.rs b/library/std/src/sys/pal/unix/fs.rs
index 37029bcd36e..3fb0ed064cb 100644
--- a/library/std/src/sys/pal/unix/fs.rs
+++ b/library/std/src/sys/pal/unix/fs.rs
@@ -1980,7 +1980,7 @@ fn open_to_and_set_permissions(
     Ok((writer, writer_metadata))
 }
 
-#[cfg(not(any(target_os = "linux", target_os = "android", target_vendor = "apple")))]
+#[cfg(not(target_vendor = "apple"))]
 pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
     let (mut reader, reader_metadata) = open_from(from)?;
     let (mut writer, _) = open_to_and_set_permissions(to, reader_metadata)?;
@@ -1988,24 +1988,6 @@ pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
     io::copy(&mut reader, &mut writer)
 }
 
-#[cfg(any(target_os = "linux", target_os = "android"))]
-pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
-    let (mut reader, reader_metadata) = open_from(from)?;
-    let max_len = u64::MAX;
-    let (mut writer, _) = open_to_and_set_permissions(to, reader_metadata)?;
-
-    use super::kernel_copy::{CopyResult, copy_regular_files};
-
-    match copy_regular_files(reader.as_raw_fd(), writer.as_raw_fd(), max_len) {
-        CopyResult::Ended(bytes) => Ok(bytes),
-        CopyResult::Error(e, _) => Err(e),
-        CopyResult::Fallback(written) => match io::copy::generic_copy(&mut reader, &mut writer) {
-            Ok(bytes) => Ok(bytes + written),
-            Err(e) => Err(e),
-        },
-    }
-}
-
 #[cfg(target_vendor = "apple")]
 pub fn copy(from: &Path, to: &Path) -> io::Result<u64> {
     const COPYFILE_ALL: libc::copyfile_flags_t = libc::COPYFILE_METADATA | libc::COPYFILE_DATA;