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>
parent
a13f0655
Please register or sign in to comment