OSDN Git Service

io_uring: fix fs cleanup on cqe overflow
authorPavel Begunkov <asml.silence@gmail.com>
Thu, 9 Apr 2020 05:17:59 +0000 (08:17 +0300)
committerJens Axboe <axboe@kernel.dk>
Thu, 9 Apr 2020 15:38:18 +0000 (09:38 -0600)
commitc398ecb3d611925e4a5411afdf7489914a5c0460
tree9f9abd0e95912c35d5851e88edf07967c78b4d72
parent9c280f9087118099f50566e906b9d9d5a0fb4529
io_uring: fix fs cleanup on cqe overflow

If completion queue overflow occurs, __io_cqring_fill_event() will
update req->cflags, which is in a union with req->work and happens to
be aliased to req->work.fs. Following io_free_req() ->
io_req_work_drop_env() may get a bunch of different problems (miscount
fs->users, segfault, etc) on cleaning @fs.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c