diff options
| author | David Howells <[email protected]> | 2023-06-07 18:19:09 +0000 |
|---|---|---|
| committer | Jakub Kicinski <[email protected]> | 2023-06-09 02:40:30 +0000 |
| commit | 2dc334f1a63a8839b88483a3e73c0f27c9c1791c (patch) | |
| tree | b23b85a3637baa98d8d44c0a4652a7db1dc18f96 /net/tls/tls_main.c | |
| parent | tls: Allow MSG_SPLICE_PAGES but treat it as normal sendmsg (diff) | |
| download | kernel-2dc334f1a63a8839b88483a3e73c0f27c9c1791c.tar.gz kernel-2dc334f1a63a8839b88483a3e73c0f27c9c1791c.zip | |
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 <[email protected]>
Reviewed-by: Jakub Kicinski <[email protected]>
cc: Jens Axboe <[email protected]>
cc: Matthew Wilcox <[email protected]>
Signed-off-by: Jakub Kicinski <[email protected]>
Diffstat (limited to 'net/tls/tls_main.c')
0 files changed, 0 insertions, 0 deletions
