*on top of for-5.6 + async patches* 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 v3: [PATCH 3/3] changes - fd u32 -> s32 (Stefan Metzmacher) - add BUILD_BUG_SQE_ELEM() (Stefan Metzmacher) - accept and ignore ioprio (Stefan Metzmacher) - off_in -> splice_off_in v4: - rebase + a bit of function renaming - make file_get/put accept req instead of ctx (Jens) - fix lost REQ_F_FIXED_FILE 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 | 181 ++++++++++++++++++++++++++++------ fs/splice.c | 6 +- include/linux/splice.h | 3 + include/uapi/linux/io_uring.h | 14 ++- 4 files changed, 171 insertions(+), 33 deletions(-) -- 2.24.0