path: root/block/blk-mq.h
diff options
authorBart Van Assche <>2017-04-26 13:47:48 -0700
committerJens Axboe <>2017-04-26 15:09:04 -0600
commit2d0364c8c1a97a1d44760895a982221c06af0f35 (patch)
tree815eee282e7f3204d4c723e5b190ffc026f0fb02 /block/blk-mq.h
parent1608fd1ca3b9357ea20ffc3a8ad2d1e4b78301a6 (diff)
blk-mq: Register <dev>/queue/mq after having registered <dev>/queue
A later patch in this series will modify blk_mq_debugfs_register() such that it uses q->kobj.parent to determine the name of a request queue. Hence make sure that that pointer is initialized before blk_mq_debugfs_register() is called. To avoid lock inversion, protect sysfs / debugfs registration with the queue sysfs_lock instead of the global mutex all_q_mutex. Signed-off-by: Bart Van Assche <> Reviewed-by: Hannes Reinecke <> Reviewed-by: Omar Sandoval <> Signed-off-by: Jens Axboe <>
Diffstat (limited to 'block/blk-mq.h')
1 files changed, 1 insertions, 0 deletions
diff --git a/block/blk-mq.h b/block/blk-mq.h
index 524f44742816..7d955c756810 100644
--- a/block/blk-mq.h
+++ b/block/blk-mq.h
@@ -78,6 +78,7 @@ static inline struct blk_mq_hw_ctx *blk_mq_map_queue(struct request_queue *q,
extern void blk_mq_sysfs_init(struct request_queue *q);
extern void blk_mq_sysfs_deinit(struct request_queue *q);
+extern int __blk_mq_register_dev(struct device *dev, struct request_queue *q);
extern int blk_mq_sysfs_register(struct request_queue *q);
extern void blk_mq_sysfs_unregister(struct request_queue *q);
extern void blk_mq_hctx_kobj_init(struct blk_mq_hw_ctx *hctx);