io_uring: fix deadlock on iowq file slot alloc
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 1 Jun 2022 14:28:44 +0000 (15:28 +0100)
committerJens Axboe <axboe@kernel.dk>
Wed, 1 Jun 2022 16:12:41 +0000 (10:12 -0600)
commit61c1b44a21d70d4783db02198fbf68b132f4953c
tree6641f4cc04ffc4d1b6482f99880638f7e976577b
parenta7c41b4687f5902af70cd559806990930c8a307b
io_uring: fix deadlock on iowq file slot alloc

io_fixed_fd_install() can grab uring_lock in the slot allocation path
when called from io-wq, and then call into io_install_fixed_file(),
which will lock it again. Pull all locking out of
io_install_fixed_file() into io_fixed_fd_install().

Fixes: 1339f24b336db ("io_uring: allow allocated fixed files for openat/openat2")
Signed-off-by: Pavel Begunkov <asml.silence@gmail.com>
Link: https://lore.kernel.org/r/64116172a9d0b85b85300346bb280f3657aafc26.1654087283.git.asml.silence@gmail.com
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io_uring.c