Exemple #1
0
void blk_unregister_queue(struct gendisk *disk)
{
    struct request_queue *q = disk->queue;

    if (WARN_ON(!q))
        return;

    if (q->mq_ops)
        blk_mq_unregister_dev(disk_to_dev(disk), q);

    if (q->request_fn)
        elv_unregister_queue(q);

    kobject_uevent(&q->kobj, KOBJ_REMOVE);
    kobject_del(&q->kobj);
    blk_trace_remove_sysfs(disk_to_dev(disk));
    kobject_put(&disk_to_dev(disk)->kobj);
}
Exemple #2
0
void blk_unregister_queue(struct gendisk *disk)
{
	struct request_queue *q = disk->queue;

	if (WARN_ON(!q))
		return;

	queue_flag_clear_unlocked(QUEUE_FLAG_REGISTERED, q);

	wbt_exit(q);


	if (q->mq_ops)
		blk_mq_unregister_dev(disk_to_dev(disk), q);

	if (q->request_fn || (q->mq_ops && q->elevator))
		elv_unregister_queue(q);

	kobject_uevent(&q->kobj, KOBJ_REMOVE);
	kobject_del(&q->kobj);
	blk_trace_remove_sysfs(disk_to_dev(disk));
	kobject_put(&disk_to_dev(disk)->kobj);
}