*参照元 [#lf84f6d7] #backlinks *説明 [#v791dd9a] -パス: [[linux-2.6.25/block/blk-core.c]] -FIXME: これは何? --指定したリクエストキューの plug(栓をすること)を解除する。 --blk_stop_queue で停止させたリクエストキューは unplug_device では 再開しない。blk_start_queue を使うこと。 --この関数はリクエストキューをロックし、同時にカレント CPU の 割り込みを禁止する。 **引数 [#ae66a6e6] -struct request_queue *q --unplug(栓を取り去ること)するリクエストキューを指定する。 --[[linux-2.6.25/request_queue]] **返り値 [#ab857d71] -なし **参考 [#he0111d7] -なし *実装 [#e03620e8] /** * 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 の割り込みを禁止する。 --[[linux-2.6.25/spin_lock_irq()]] __generic_unplug_device(q); -リクエストキューに対して unplug(栓を取り去ること)する。 --[[linux-2.6.25/__generic_unplug_device()]] spin_unlock_irq(q->queue_lock); -リクエストキューのスピンロックを解放する。 カレント CPU の割り込みを許可する。 --[[linux-2.6.25/spin_unlock_irq()]] } EXPORT_SYMBOL(generic_unplug_device); -関数をエクスポートする。 --[[linux-2.6.25/EXPORT_SYMBOL()]] *コメント [#f1973072]