]> git.baikalelectronics.ru Git - kernel.git/commit
io-wq: ensure free/busy list browsing see all items
authorJens Axboe <axboe@kernel.dk>
Wed, 13 Nov 2019 20:54:49 +0000 (13:54 -0700)
committerJens Axboe <axboe@kernel.dk>
Thu, 14 Nov 2019 02:40:57 +0000 (19:40 -0700)
commit5546fb6216382f4bffcc732502cc46641345a82e
tree9cdf9136edac5778032ad517a7f72c2bd8e033c7
parent08907c890aa9a056beb7aa4b2e8e198cf082fbd5
io-wq: ensure free/busy list browsing see all items

We have two lists for workers in io-wq, a busy and a free list. For
certain operations we want to browse all workers, and we currently do
that by browsing the two separate lists. But since these lists are RCU
protected, we can potentially miss workers if they move between the two
lists while we're browsing them.

Add a third list, all_list, that simply holds all workers. A worker is
added to that list when it starts, and removed when it exits. This makes
the worker iteration cleaner, too.

Reported-by: Paul E. McKenney <paulmck@kernel.org>
Reviewed-by: Paul E. McKenney <paulmck@kernel.org>
Signed-off-by: Jens Axboe <axboe@kernel.dk>
fs/io-wq.c