io-wq: optimise out *next_work() double lock
authorPavel Begunkov <asml.silence@gmail.com>
Wed, 4 Mar 2020 13:14:11 +0000 (16:14 +0300)
committerJens Axboe <axboe@kernel.dk>
Wed, 4 Mar 2020 18:39:06 +0000 (11:39 -0700)
commitf462fd36fc43662eeb42c95a9b8da8659af6d75e
tree6be773b2ba796a7c669bd68c3e3ddffe454c15be
parent58e3931987377d3f4ec7bbc13e4ea0aab52dc6b0
io-wq: optimise out *next_work() double lock

When executing non-linked hashed work, io_worker_handle_work()
will lock-unlock wqe->lock to update hash, and then immediately
lock-unlock to get next work. Optimise this case and do
lock/unlock only once.

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