diff options
| -rw-r--r-- | library/std/src/io/copy.rs | 32 |
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), |
