io_uring: allow submissions to continue on error
authorJens Axboe <axboe@kernel.dk>
Thu, 10 Mar 2022 19:59:35 +0000 (12:59 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 10 Mar 2022 20:05:25 +0000 (13:05 -0700)
commitbcbb7bf6ccde7cb969a5642879832bc84ebf06a3
tree18a39891555fe3acd6b4197fd097f10745777b4b
parentb1c62645758eb438179e3a0769168cb7b0a94d6b
io_uring: allow submissions to continue on error

By default, io_uring will stop submitting a batch of requests if we run
into an error submitting a request. This isn't strictly necessary, as
the error result is passed out-of-band via a CQE anyway. And it can be
a bit confusing for some applications.

Provide a way to setup a ring that will continue submitting on error,
when the error CQE has been posted.

There's still one case that will break out of submission. If we fail
allocating a request, then we'll still return -ENOMEM. We could in theory
post a CQE for that condition too even if we never got a request. Leave
that for a potential followup.

Reported-by: Dylan Yudaken <dylany@fb.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c
include/uapi/linux/io_uring.h