[PATCH v4 0/3] io_uring: add splice(2) support

From: Pavel Begunkov
Date: Mon Feb 24 2020 - 03:33:51 EST


*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