Probably, not the fastets implementation, but I'd need to stir up/duplicate splice.c bits to do it more efficiently. note: rebase on top of the recent inflight patchset. v2: - u32 len and SQE layout changes (Jens) - output file is in sqe->fd for automatic hash_reg_file support - handle unbound_nonreg_file for the second fd - file leaks fixed with REQ_F_NEED_CLEANUP - place SPLICE_F_FD_IN_FIXED in splice flags (Jens) - loff_t* -> loff_t, -1 means not specified offset Pavel Begunkov (3): splice: make do_splice public io_uring: add interface for getting files io_uring: add splice(2) support fs/io_uring.c | 172 +++++++++++++++++++++++++++++----- fs/splice.c | 6 +- include/linux/splice.h | 3 + include/uapi/linux/io_uring.h | 14 ++- 4 files changed, 166 insertions(+), 29 deletions(-) -- 2.24.0