Currently we don't copy the associated iovecs when we punt to async context, and this can prove problematic if the caller only ensures the iovec is valid for the submission. This is a perfectly valid assumption, and I think io_uring should make sure that this is safe to do. First patch is a prep patch, the following patches add support for the various opcodes that need it. Also see: https://github.com/axboe/liburing/issues/27 fs/io_uring.c | 466 ++++++++++++++++++++++++++-------- include/linux/socket.h | 20 +- include/uapi/linux/io_uring.h | 1 + net/socket.c | 76 ++---- 4 files changed, 406 insertions(+), 157 deletions(-) Changes since v1: - Get rid of REQ_F_PREPPED, just use req->io - Add sendmsg/recvmsg and connect - Add IORING_FEAT_SUBMIT_STABLE to userspace can tell kernels with this "feature" apart from older ones -- Jens Axboe