]> git.baikalelectronics.ru Git - kernel.git/commit
block: don't call ioc_exit_icq() with the queue lock held for blk-mq
authorJens Axboe <axboe@fb.com>
Thu, 2 Mar 2017 20:59:08 +0000 (13:59 -0700)
committerJens Axboe <axboe@fb.com>
Thu, 2 Mar 2017 20:59:08 +0000 (13:59 -0700)
commit39692de228bd0e5f7216b5eb4eb9e8fe72ef3ade
treec527bc3477255dfc0064390f2073533c6a652c2b
parent7c2d7ba15edf0fd17095bcb6d05b47e48bb442a9
block: don't call ioc_exit_icq() with the queue lock held for blk-mq

For legacy scheduling, we always call ioc_exit_icq() with both the
ioc and queue lock held. This poses a problem for blk-mq with
scheduling, since the queue lock isn't what we use in the scheduler.
And since we don't need the queue lock held for ioc exit there,
don't grab it and leave any extra locking up to the blk-mq scheduler.

Reported-by: Paolo Valente <paolo.valente@linaro.org>
Tested-by: Paolo Valente <paolo.valente@linaro.org>
Reviewed-by: Omar Sandoval <osandov@fb.com>
Signed-off-by: Jens Axboe <axboe@fb.com>
block/blk-ioc.c
block/blk-sysfs.c
block/elevator.c