Hi,
The 1st 4 patches cleans up current uses on q->sysfs_lock.
The 5th patch adds one helper for checking if queue is registered.
The last patch splits .sysfs_lock into two locks: one is only for
sync .store/.show from sysfs, the other one is for pretecting kobjects
registering/unregistering. Meantime avoid to acquire .sysfs_lock when
removing mq & iosched kobjects, so that the reported deadlock can
be fixed.
V2:
- remove several uses on .sysfs_lock
- Remove blk_mq_register_dev()
- add one helper for checking queue registered
- split .sysfs_lock into two locks
Bart Van Assche (1):
block: Remove blk_mq_register_dev()
Ming Lei (5):
block: don't hold q->sysfs_lock in elevator_init_mq
blk-mq: don't hold q->sysfs_lock in blk_mq_map_swqueue
blk-mq: don't hold q->sysfs_lock in blk_mq_realloc_hw_ctxs()
block: add helper for checking if queue is registered
block: split .sysfs_lock into two locks
block/blk-core.c | 1 +
block/blk-mq-sysfs.c | 23 ++++------------
block/blk-mq.c | 10 -------
block/blk-sysfs.c | 50 +++++++++++++++++++++-------------
block/blk-wbt.c | 2 +-
block/blk.h | 2 +-
block/elevator.c | 62 +++++++++++++++++++++++++++++++-----------
include/linux/blk-mq.h | 1 -
include/linux/blkdev.h | 2 ++
9 files changed, 88 insertions(+), 65 deletions(-)
Cc: Christoph Hellwig <[email protected]>
Cc: Hannes Reinecke <[email protected]>
Cc: Greg KH <[email protected]>
Cc: Mike Snitzer <[email protected]>
Cc: Bart Van Assche <[email protected]>
--
2.20.1