On 14.02.23 09:37, David Howells wrote:
Hi Jens, Al, Christoph,
Here are patches to make some changes that Christoph requested[1] to the
new generic file splice functions that I implemented[2]. Apart from one
functional change, they just altering the styling and move one of the
functions to a different file:
(1) Rename the main functions:
generic_file_buffered_splice_read() -> filemap_splice_read()
generic_file_direct_splice_read() -> direct_splice_read()
(2) Abstract out the calculation of the location of the head pipe buffer
into a helper function in linux/pipe_fs_i.h.
(3) Use init_sync_kiocb() in filemap_splice_read().
This is where the functional change is. Some kiocb fields are then
filled in where they were set to 0 before, including setting ki_flags
from f_iocb_flags.
(4) Move filemap_splice_read() to mm/filemap.c. filemap_get_pages() can
then be made static again.
(5) Fix splice-read for a number of filesystems that don't provide a
->read_folio() op and for which filemap_get_pages() cannot be used.
I've pushed the patches here also:
https://git.kernel.org/pub/scm/linux/kernel/git/dhowells/linux-fs.git/log/?h=iov-extract-3
I've also updated worked the changes into the commits on my iov-extract
branch if that would be preferable, though that means Jens would need to
update his for-6.3/iov-extract again.
David
Link: https://lore.kernel.org/r/Y+n0n2UE8BQa/OwW@xxxxxxxxxxxxx/ [1]
Link: https://lore.kernel.org/r/20230207171305.3716974-1-dhowells@xxxxxxxxxx/ [2]
Changes
=======
ver #3)
- Fix filesystems/drivers that don't have ->read_folio().
ver #2)
- Don't attempt to filter IOCB_* flags in filemap_splice_read().
Link: https://lore.kernel.org/r/20230213134619.2198965-1-dhowells@xxxxxxxxxx/ # v1
You ignored my RB's :(
.. but unrelated, what's the plan with this now? As Jens mentioned, it
might be better to wait for 6.4 for the full series, in which case
folding this series into the other series would be better.
--
Thanks,
David / dhildenb