参照元†
- これは何?
- 指定したリクエストキューの plug(栓をすること)を解除する。
- blk_stop_queue で停止させたリクエストキューは unplug_device では
再開しない。blk_start_queue を使うこと。
- この関数はリクエストキューをロックし、同時にカレント CPU の
割り込みを禁止する。
返り値†
/**
* generic_unplug_device - fire a request queue
* @q: The &struct request_queue in question
*
* Description:
* Linux uses plugging to build bigger requests queues before letting
* the device have at them. If a queue is plugged, the I/O scheduler
* is still adding and merging requests on the queue. Once the queue
* gets unplugged, the request_fn defined for the queue is invoked and
* transfers started.
**/
void generic_unplug_device(struct request_queue *q)
{
spin_lock_irq(q->queue_lock);
- リクエストキューのスピンロックを取る。
カレント CPU の割り込みを禁止する。
__generic_unplug_device(q);
- リクエストキューに対して unplug(栓を取り去ること)する。
spin_unlock_irq(q->queue_lock);
- リクエストキューのスピンロックを解放する。
カレント CPU の割り込みを許可する。
}
EXPORT_SYMBOL(generic_unplug_device);
コメント†