[GIT PULL] io_uring fixes for 5.8-rc1

From: Jens Axboe
Date: Thu Jun 11 2020 - 17:35:36 EST


Hi Linus,

A few late stragglers in here. In particular:

- Validate full range for provided buffers (Bijan)

- Fix bad use of kfree() in buffer registration failure (Denis)

- Don't allow close of ring itself, it's not fully safe. Making it fully
safe would require making the system call more expensive, which isn't
worth it.

- Buffer selection fix

- Regression fix for O_NONBLOCK retry

- Make IORING_OP_ACCEPT honor O_NONBLOCK (Jiufei)

- Restrict opcode handling for SQ/IOPOLL (Pavel)

- io-wq work handling cleanups and improvements (Pavel, Xiaoguang)

- IOPOLL race fix (Xiaoguang)

Please pull!

The following changes since commit 1ee08de1e234d95b5b4f866878b72fceb5372904:

Merge tag 'for-5.8/io_uring-2020-06-01' of git://git.kernel.dk/linux-block (2020-06-02 15:42:50 -0700)

are available in the Git repository at:

git://git.kernel.dk/linux-block.git tags/io_uring-5.8-2020-06-11

for you to fetch changes up to 65a6543da386838f935d2f03f452c5c0acff2a68:

io_uring: fix io_kiocb.flags modification race in IOPOLL mode (2020-06-11 09:45:21 -0600)

----------------------------------------------------------------
io_uring-5.8-2020-06-11

----------------------------------------------------------------
Bijan Mottahedeh (1):
io_uring: validate the full range of provided buffers for access

Denis Efremov (1):
io_uring: use kvfree() in io_sqe_buffer_register()

Jens Axboe (3):
io_uring: disallow close of ring itself
io_uring: re-set iov base/len for buffer select retry
io_uring: allow O_NONBLOCK async retry

Jiufei Xue (1):
io_uring: check file O_NONBLOCK state for accept

Pavel Begunkov (8):
io_uring: fix {SQ,IO}POLL with unsupported opcodes
io_uring: do build_open_how() only once
io_uring: deduplicate io_openat{,2}_prep()
io_uring: move send/recv IOPOLL check into prep
io_uring: don't derive close state from ->func
io_uring: remove custom ->func handlers
io_uring: don't arm a timeout through work.func
io_wq: add per-wq work handler instead of per work

Xiaoguang Wang (3):
io_uring: avoid whole io_wq_work copy for requests completed inline
io_uring: avoid unnecessary io_wq_work copy for fast poll feature
io_uring: fix io_kiocb.flags modification race in IOPOLL mode

fs/io-wq.c | 10 +-
fs/io-wq.h | 8 +-
fs/io_uring.c | 424 ++++++++++++++++++++++++++--------------------------------
3 files changed, 201 insertions(+), 241 deletions(-)

--
Jens Axboe