io_uring: Fix ->data corruption on re-enqueue
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 22 Mar 2020 21:23:29 +0000 (00:23 +0300)
committerJens Axboe <axboe@kernel.dk>
Mon, 23 Mar 2020 01:31:27 +0000 (19:31 -0600)
commit18a542ff19ad149fac9e5a36a4012e3cac7b3b3b
tree254619a183836e5b7b72493955bf39418228c3e6
parentf2cf11492b8b30d89b2fbf525c9ea5e8c4ccc842
io_uring: Fix ->data corruption on re-enqueue

work->data and work->list are shared in union. io_wq_assign_next() sets
->data if a req having a linked_timeout, but then io-wq may want to use
work->list, e.g. to do re-enqueue of a request, so corrupting ->data.

->data is not necessary, just remove it and extract linked_timeout
through @link_list.

Fixes: 60cf46ae6054 ("io-wq: hash dependent work")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io-wq.h
fs/io_uring.c