Hi,

For fixing queue lock switching back related issue, commit 498f6650aec8
("block: Fix a race between the cgroup code and request queue initialization")
moves what blk_exit_queue() does into blk_cleanup_queue(). Turns out
it requires to protect generic_make_request_checks with blk_queue_enter,
then we have to hold the queue usage counter before
generic_make_request_checks(). This way makes generic_make_request()
code quite complicated and not easy to maintain.

After killing legacy request IO path, there isn't driver private queue
lock story, then no such issue addressed by 498f6650aec8 any more.

So revert the following commits and clean up related code much. 

        498f6650aec8 block: Fix a race between the cgroup code and request 
queue initialization
        37f9579f4c31 blk-mq: Avoid that submitting a bio concurrently with 
device removal triggers a crash
        cd4a4ae4683d block: don't use blocking queue entered for recursive bio 
submits
        24ecc3585348 block: Ensure that a request queue is dissociated from the 
cgroup controller

Ming Lei (3):
  block: move blk_exit_queue into __blk_release_queue
  block: don't protect generic_make_request_checks with blk_queue_enter
  block: rename BIO_QUEUE_ENTERED as BIO_SPLITTED

 block/blk-core.c           | 74 ++++----------------------------------
 block/blk-merge.c          | 10 +-----
 block/blk-sysfs.c          | 47 ++++++++++++++++--------
 block/blk.h                |  1 -
 include/linux/blk-cgroup.h |  4 +--
 include/linux/blk_types.h  |  2 +-
 6 files changed, 42 insertions(+), 96 deletions(-)

Cc: Josef Bacik <[email protected]>
Cc: Christoph Hellwig <[email protected]>
Cc: Bart Van Assche <[email protected]>

-- 
2.20.1

Reply via email to