@@ -173,22 +173,6 @@ mod kernel_copy {
173
173
)
174
174
. map ( |bytes_copied| bytes_copied + bytes_flushed)
175
175
}
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
- }
192
176
(
193
177
CopyParams ( FdMeta :: Metadata ( reader_meta) , Some ( readfd) ) ,
194
178
CopyParams ( _, Some ( writefd) ) ,
@@ -205,6 +189,22 @@ mod kernel_copy {
205
189
& mut reader,
206
190
& mut writer,
207
191
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,
208
208
)
209
209
. map ( |bytes_sent| bytes_sent + bytes_flushed)
210
210
}
0 commit comments