about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--library/std/src/io/copy.rs32
1 files changed, 16 insertions, 16 deletions
diff --git a/library/std/src/io/copy.rs b/library/std/src/io/copy.rs
index 4604f2ab002..f54a9b8b764 100644
--- a/library/std/src/io/copy.rs
+++ b/library/std/src/io/copy.rs
@@ -173,22 +173,6 @@ mod kernel_copy {
                     )
                     .map(|bytes_copied| bytes_copied + bytes_flushed)
                 }
-                (CopyParams(reader_meta, Some(readfd)), CopyParams(writer_meta, Some(writefd)))
-                    if reader_meta.is_fifo() || writer_meta.is_fifo() =>
-                {
-                    // splice
-                    let bytes_flushed = flush()?;
-                    let max_write = reader.min_limit();
-                    let (mut reader, mut writer) =
-                        unsafe { (fd_as_file(readfd), fd_as_file(writefd)) };
-                    crate::sys::fs::sendfile_splice(
-                        crate::sys::fs::SpliceMode::Splice,
-                        &mut reader,
-                        &mut writer,
-                        max_write,
-                    )
-                    .map(|bytes_sent| bytes_sent + bytes_flushed)
-                }
                 (
                     CopyParams(FdMeta::Metadata(reader_meta), Some(readfd)),
                     CopyParams(_, Some(writefd)),
@@ -206,6 +190,22 @@ mod kernel_copy {
                         &mut writer,
                         min(len, max_write),
                     )
+                        .map(|bytes_sent| bytes_sent + bytes_flushed)
+                }
+                (CopyParams(reader_meta, Some(readfd)), CopyParams(writer_meta, Some(writefd)))
+                    if reader_meta.is_fifo() || writer_meta.is_fifo() =>
+                {
+                    // splice
+                    let bytes_flushed = flush()?;
+                    let max_write = reader.min_limit();
+                    let (mut reader, mut writer) =
+                        unsafe { (fd_as_file(readfd), fd_as_file(writefd)) };
+                    crate::sys::fs::sendfile_splice(
+                        crate::sys::fs::SpliceMode::Splice,
+                        &mut reader,
+                        &mut writer,
+                        max_write,
+                    )
                     .map(|bytes_sent| bytes_sent + bytes_flushed)
                 }
                 _ => super::generic_copy(reader, writer),