io_uring: read opcode and user_data from SQE exactly once
authorJens Axboe <axboe@kernel.dk>
Wed, 18 Dec 2019 02:53:05 +0000 (19:53 -0700)
committerJens Axboe <axboe@kernel.dk>
Wed, 18 Dec 2019 02:57:27 +0000 (19:57 -0700)
commitd625c6ee4975000140c57da7e1ff244efefde274
treeb39b071dddc083e5487a5854a4c1cca2a9286839
parentb29472ee7b53784f44011069fad15e539fd25bcf
io_uring: read opcode and user_data from SQE exactly once

If we defer a request, we can't be reading the opcode again. Ensure that
the user_data and opcode fields are stable. For the user_data we already
have a place for it, for the opcode we can fill a one byte hold and store
that as well. For both of them, assign them when we originally read the
SQE in io_get_sqring(). Any code that uses sqe->opcode or sqe->user_data
is switched to req->opcode and req->user_data.

Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c