@@ -173,22 +173,6 @@ mod kernel_copy {
173173 )
174174 . map ( |bytes_copied| bytes_copied + bytes_flushed)
175175 }
176- ( CopyParams ( reader_meta, Some ( readfd) ) , CopyParams ( writer_meta, Some ( writefd) ) )
177- if reader_meta. is_fifo ( ) || writer_meta. is_fifo ( ) =>
178- {
179- // splice
180- let bytes_flushed = flush ( ) ?;
181- let max_write = reader. min_limit ( ) ;
182- let ( mut reader, mut writer) =
183- unsafe { ( fd_as_file ( readfd) , fd_as_file ( writefd) ) } ;
184- crate :: sys:: fs:: sendfile_splice (
185- crate :: sys:: fs:: SpliceMode :: Splice ,
186- & mut reader,
187- & mut writer,
188- max_write,
189- )
190- . map ( |bytes_sent| bytes_sent + bytes_flushed)
191- }
192176 (
193177 CopyParams ( FdMeta :: Metadata ( reader_meta) , Some ( readfd) ) ,
194178 CopyParams ( _, Some ( writefd) ) ,
@@ -205,6 +189,22 @@ mod kernel_copy {
205189 & mut reader,
206190 & mut writer,
207191 min ( len, max_write) ,
192+ )
193+ . map ( |bytes_sent| bytes_sent + bytes_flushed)
194+ }
195+ ( CopyParams ( reader_meta, Some ( readfd) ) , CopyParams ( writer_meta, Some ( writefd) ) )
196+ if reader_meta. is_fifo ( ) || writer_meta. is_fifo ( ) =>
197+ {
198+ // splice
199+ let bytes_flushed = flush ( ) ?;
200+ let max_write = reader. min_limit ( ) ;
201+ let ( mut reader, mut writer) =
202+ unsafe { ( fd_as_file ( readfd) , fd_as_file ( writefd) ) } ;
203+ crate :: sys:: fs:: sendfile_splice (
204+ crate :: sys:: fs:: SpliceMode :: Splice ,
205+ & mut reader,
206+ & mut writer,
207+ max_write,
208208 )
209209 . map ( |bytes_sent| bytes_sent + bytes_flushed)
210210 }
0 commit comments