diff options
author | Stefan Bühler <source@stbuehler.de> | 2019-05-11 19:08:01 +0200 |
---|---|---|
committer | Jens Axboe <axboe@kernel.dk> | 2019-05-13 09:15:42 -0600 |
commit | e2033e33cb3821c26d4f9e70677910827d3b7885 (patch) | |
tree | 9a4c0da34b35916590b1104581ccd89339ea6d94 /lib/timerqueue.c | |
parent | a13f0655503a4a89df67fdc7cac6a7810795d4b3 (diff) |
io_uring: fix race condition reading SQE data
When punting to workers the SQE gets copied after the initial try.
There is a race condition between reading SQE data for the initial try
and copying it for punting it to the workers.
For example io_rw_done calls kiocb->ki_complete even if it was prepared
for IORING_OP_FSYNC (and would be NULL).
The easiest solution for now is to alway prepare again in the worker.
req->file is safe to prepare though as long as it is checked before use.
Signed-off-by: Stefan Bühler <source@stbuehler.de>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
Diffstat (limited to 'lib/timerqueue.c')
0 files changed, 0 insertions, 0 deletions