Files
linux/include/linux
David Howells 2dc334f1a6 splice, net: Use sendmsg(MSG_SPLICE_PAGES) rather than ->sendpage()
Replace generic_splice_sendpage() + splice_from_pipe + pipe_to_sendpage()
with a net-specific handler, splice_to_socket(), that calls sendmsg() with
MSG_SPLICE_PAGES set instead of calling ->sendpage().

MSG_MORE is used to indicate if the sendmsg() is expected to be followed
with more data.

This allows multiple pipe-buffer pages to be passed in a single call in a
BVEC iterator, allowing the processing to be pushed down to a loop in the
protocol driver.  This helps pave the way for passing multipage folios down
too.

Protocols that haven't been converted to handle MSG_SPLICE_PAGES yet should
just ignore it and do a normal sendmsg() for now - although that may be a
bit slower as it may copy everything.

Signed-off-by: David Howells <dhowells@redhat.com>
Reviewed-by: Jakub Kicinski <kuba@kernel.org>
cc: Jens Axboe <axboe@kernel.dk>
cc: Matthew Wilcox <willy@infradead.org>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
2023-06-08 19:40:30 -07:00
..
2023-03-29 12:26:32 +02:00
2023-03-06 12:33:02 +02:00
2023-04-21 14:37:03 +01:00
2023-01-19 14:46:25 +01:00
2023-05-20 05:38:01 -06:00
2023-06-01 21:40:10 -07:00
2023-02-03 08:20:55 -07:00
2023-03-05 10:49:37 -08:00
2023-05-25 09:26:19 +02:00
2023-03-23 16:02:27 -10:00
2023-04-17 18:01:23 +02:00
2023-04-20 18:20:04 +08:00
2023-01-19 16:07:40 +01:00
2023-03-06 15:49:07 -06:00
2023-01-29 15:18:33 -07:00
2023-01-29 15:18:33 -07:00
2023-05-25 09:26:19 +02:00
2023-02-06 19:06:58 +01:00
2023-01-19 09:24:28 +01:00
2023-03-29 16:00:23 +02:00
2023-03-19 10:02:04 -07:00
2023-03-06 12:33:02 +02:00
2023-02-13 10:11:20 +02:00
2023-03-07 22:04:45 +05:30
2023-01-19 09:24:30 +01:00
2023-03-29 12:26:32 +02:00
2023-05-24 18:08:49 +02:00
2023-03-15 14:58:52 +01:00
2023-04-03 11:16:56 +02:00
2023-03-06 09:57:07 +01:00
2023-03-17 15:00:40 +01:00
2023-01-19 15:01:19 +01:00
2023-05-18 19:52:31 -07:00
2023-01-18 17:12:47 -08:00
2023-03-16 13:08:39 -07:00
2023-03-23 17:25:46 +01:00
2023-03-29 08:19:38 +01:00
2023-04-05 20:03:01 -07:00
2023-04-21 03:02:34 -04:00
2023-03-06 09:57:11 +01:00