Hi Linus,
This is mostly io_uring fixes/tweaks. Most of these were actually done
in time for the last -rc, but I wanted to ensure that everything tested
out great before including them. The code delta looks larger than it
really is, as it's mostly just comment additions/changes. If you exclude
that one patch, we're down to:
fs/block_dev.c | 3 +-
fs/io_uring.c | 130
+++++++++++++++++++++++----------------------------------------
include/linux/uio.h | 2 +-
3 files changed, 51 insertions(+), 84 deletions(-)
which looks much more reasonable.
Outside of the comment additions/changes, this is mostly removal of
unnecessary barriers. In all, this pull request contains:
- Tweak to how we handle errors at submission time. We now post a
completion event if the error occurs on behalf of an sqe, instead of
returning it through the system call. If the error happens outside of
a specific sqe, we return the error through the system call. This
makes it nicer to use and makes the "normal" use case behave the same
as the offload cases. (me)
- Fix for a missing req reference drop from async context (me)
- If an sqe is submitted with RWF_NOWAIT, don't punt it to async
context. Return -EAGAIN directly, instead of using it as a hint to do
async punt. (Stefan)
- Fix notes on barriers (Stefan)
- Remove unnecessary barriers (Stefan)
- Fix potential double free of memory in setup error (Mark)
- Further improve sq poll CPU validation (Mark)
- Fix page allocation warning and leak on buffer registration error
(Mark)
- Fix iov_iter_type() for new no-ref flag (Ming)
- Fix a case where dio doesn't honor bio no-page-ref (Ming)
Please pull!
git://git.kernel.dk/linux-block.git tags/for-linus-20190502
----------------------------------------------------------------
Jens Axboe (2):
io_uring: have submission side sqe errors post a cqe
io_uring: drop req submit reference always in async punt
Mark Rutland (3):
io_uring: fix SQPOLL cpu validation
io_uring: free allocated io_memory once
io_uring: avoid page allocation warnings
Ming Lei (2):
block: fix handling for BIO_NO_PAGE_REF
iov_iter: fix iov_iter_type
Stefan Bühler (8):
io_uring: fix handling SQEs requesting NOWAIT
io_uring: fix notes on barriers
io_uring: remove unnecessary barrier before wq_has_sleeper
io_uring: remove unnecessary barrier before reading cq head
io_uring: remove unnecessary barrier after updating SQ head
io_uring: remove unnecessary barrier before reading SQ tail
io_uring: remove unnecessary barrier after incrementing dropped counter
io_uring: remove unnecessary barrier after unsetting IORING_SQ_NEED_WAKEUP
fs/block_dev.c | 3 +-
fs/io_uring.c | 249 +++++++++++++++++++++++++++++++++-------------------
include/linux/uio.h | 2 +-
3 files changed, 161 insertions(+), 93 deletions(-)
--
Jens Axboe