io_uring: return back safer resurrect
authorPavel Begunkov <asml.silence@gmail.com>
Sun, 11 Apr 2021 00:46:40 +0000 (01:46 +0100)
committerJens Axboe <axboe@kernel.dk>
Mon, 12 Apr 2021 15:33:10 +0000 (09:33 -0600)
commitf70865db5ff35f5ed0c7e9ef63e7cca3d4947f04
tree7e9a2ff732e1b21cd4795fcf7ca779f141a7bf37
parente4335ed33eb54ba00c58557753dc84c0ee762ef1
io_uring: return back safer resurrect

Revert of revert of "io_uring: wait potential ->release() on resurrect",
which adds a helper for resurrect not racing completion reinit, as was
removed because of a strange bug with no clear root or link to the
patch.

Was improved, instead of rcu_synchronize(), just wait_for_completion()
because we're at 0 refs and it will happen very shortly. Specifically
use non-interruptible version to ignore all pending signals that may
have ended prior interruptible wait.

This reverts commit cb5e1b81304e089ee3ca948db4d29f71902eb575.

Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/7a080c20f686d026efade810b116b72f88abaff9.1618101759.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c