io_uring: don't use complete_all() on SQPOLL thread exit
authorJens Axboe <axboe@kernel.dk>
Fri, 26 Feb 2021 20:46:49 +0000 (13:46 -0700)
committerJens Axboe <axboe@kernel.dk>
Mon, 1 Mar 2021 17:21:07 +0000 (10:21 -0700)
commit4c136eabf8838061716a95e3a20bc4a4bfc20328
treedf7349e3f98a6d5e1265bef26fa6f10f7eaac782
parentc994ea22789b4f1408e3d7b5341d3fcc622d54f0
io_uring: don't use complete_all() on SQPOLL thread exit

We want to reuse this completion, and a single complete should do just
fine. Ensure that we park ourselves first if requested, as that is what
lead to the initial deadlock in this area. If we've got someone attempting
to park us, then we can't proceed without having them finish first.

Fixes: 37d1e2e3642e ("io_uring: move SQPOLL thread io-wq forked worker")
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c