Files
kernel/include/uapi/linux
Jens Axboe b69de288e9 io_uring: allow events and user_data update of running poll requests
This adds two new POLL_ADD flags, IORING_POLL_UPDATE_EVENTS and
IORING_POLL_UPDATE_USER_DATA. As with the other POLL_ADD flag, these are
masked into sqe->len. If set, the POLL_ADD will have the following
behavior:

- sqe->addr must contain the the user_data of the poll request that
  needs to be modified. This field is otherwise invalid for a POLL_ADD
  command.

- If IORING_POLL_UPDATE_EVENTS is set, sqe->poll_events must contain the
  new mask for the existing poll request. There are no checks for whether
  these are identical or not, if a matching poll request is found, then it
  is re-armed with the new mask.

- If IORING_POLL_UPDATE_USER_DATA is set, sqe->off must contain the new
  user_data for the existing poll request.

A POLL_ADD with any of these flags set may complete with any of the
following results:

1) 0, which means that we successfully found the existing poll request
   specified, and performed the re-arm procedure. Any error from that
   re-arm will be exposed as a completion event for that original poll
   request, not for the update request.
2) -ENOENT, if no existing poll request was found with the given
   user_data.
3) -EALREADY, if the existing poll request was already in the process of
   being removed/canceled/completing.
4) -EACCES, if an attempt was made to modify an internal poll request
   (eg not one originally issued ass IORING_OP_POLL_ADD).

The usual -EINVAL cases apply as well, if any invalid fields are set
in the sqe for this command type.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
2021-04-11 17:42:00 -06:00
..
2020-08-22 10:53:12 +01:00
2021-01-25 18:44:44 +01:00
2020-05-28 11:22:14 +02:00
2020-12-28 14:21:31 +00:00
2021-01-18 18:38:47 +01:00
2021-02-09 10:58:19 +01:00
2020-08-12 10:58:00 -07:00
2020-10-09 12:47:02 -06:00
2020-12-08 15:54:16 +01:00
2020-04-27 16:29:41 +05:30
2020-07-19 19:20:22 -07:00
2021-04-07 14:22:49 -07:00
2020-06-24 21:34:11 +02:00
2020-05-14 16:44:25 +02:00
2020-05-28 22:09:47 -04:00
2021-02-08 13:01:24 +01:00
2020-07-19 19:20:22 -07:00
2020-07-13 15:32:56 -07:00
2020-04-20 12:43:24 -07:00
2020-07-24 17:12:41 -07:00
2020-08-27 07:55:59 -07:00
2021-02-26 09:41:03 -08:00
2020-11-26 14:19:10 +01:00
2020-05-21 08:20:35 -06:00
2020-03-29 22:30:57 -07:00
2020-08-18 15:44:44 +02:00
2021-01-24 14:43:45 +01:00
2021-03-24 16:44:31 -07:00
2020-03-29 22:30:57 -07:00
2021-01-16 23:19:26 +01:00
2021-01-07 16:17:32 +01:00
2021-02-01 13:20:06 -07:00
2020-10-23 11:55:28 -04:00
2020-10-23 11:55:28 -04:00
2020-07-13 15:32:56 -07:00
2020-06-24 07:51:01 +02:00