diff --git a/block/blk-sysfs.c b/block/blk-sysfs.c index 05d8a5b236f5c841d3d974034be681ea8230b0b9..f758d8bac54d2c16e10efc98caf3a3eafc479b4d 100644 --- a/block/blk-sysfs.c +++ b/block/blk-sysfs.c @@ -989,6 +989,8 @@ int blk_register_queue(struct gendisk *disk) ret = elv_register_queue(q, false); if (ret) { mutex_unlock(&q->sysfs_lock); + if (q->mq_ops) + blk_mq_unregister_dev(dev, q); mutex_unlock(&queue_to_wrapper(q)->sysfs_dir_lock); kobject_del(&q->kobj); blk_trace_remove_sysfs(dev);