On 2/27/22 14:15, Al Viro wrote:
On Sun, Feb 27, 2022 at 01:34:31AM -0800, jhubbard.send.patches@xxxxxxxxx wrote:
From: John Hubbard <jhubbard@xxxxxxxxxx>
Upcoming changes to Direct IO will change it from acquiring pages via
get_user_pages_fast(), to calling pin_user_pages_fast() instead.
Place a few assertions at key points, that the pages are IOVEC (user
pages), to enforce the assumptions that there are no kernel or pipe or
other odd variations being passed.
Umm... And what should happen when O_DIRECT file gets passed to splice()?
Hi Al,
First of all, full disclosure: I still haven't worked through how
splice() handles pages in all cases. I was hoping to defer it, by
limiting this series to not *all* of the original callers of
iov_iter_get_pages*().
This series leaves the splice() code pointing to iov_iter_get_pages(),
but maybe that's not possible after all.
Any advice or ideas about how to solve the O_DIRECT-to-splice() is very
welcome.
thanks,
--
John Hubbard
NVIDIA