Hi Linus, Here's a set of changes/fixes that should go into 5.5-rc. This pull request contains: - A tweak to IOSQE_IO_LINK (also marked for stable) to allow links that don't sever if the result is < 0. This is mostly for linked timeouts, where if we ask for a pure timeout we always get -ETIME. This makes links useless for that case, hence allow a case where it works. - Five minor optimizations to fix and improve cases that regressed since v5.4. - An SQTHREAD locking fix. - A sendmsg/recvmsg iov assignment fix. - Net fix where read_iter/write_iter don't honor IOCB_NOWAIT, and subsequently ensuring that works for io_uring. - Fix a case where for an invalid opcode we might return -EBADF instead of -EINVAL, if the ->fd of that sqe was set to an invalid fd value. Please pull! git://git.kernel.dk/linux-block.git tags/io_uring-5.5-20191212 ---------------------------------------------------------------- Jens Axboe (11): io_uring: allow unbreakable links io-wq: remove worker->wait waitqueue io-wq: briefly spin for new work after finishing work io_uring: sqthread should grab ctx->uring_lock for submissions io_uring: deferred send/recvmsg should assign iov io_uring: don't dynamically allocate poll data io_uring: run next sqe inline if possible io_uring: only hash regular files for async work execution net: make socket read/write_iter() honor IOCB_NOWAIT io_uring: add sockets to list of files that support non-blocking issue io_uring: ensure we return -EINVAL on unknown opcode fs/io-wq.c | 34 ++++++--- fs/io-wq.h | 7 +- fs/io_uring.c | 168 +++++++++++++++++++++++------------------- include/uapi/linux/io_uring.h | 40 +++++----- net/socket.c | 4 +- 5 files changed, 146 insertions(+), 107 deletions(-) -- Jens Axboe