*参照元 [#xa191693] #backlinks *説明 [#a2ed564d] -パス: [[linux-2.6.25/block/blk-core.c]] -指定したリクエストキューの plug(栓をすること)を解除する。 --blk_stop_queue で停止させたリクエストキューは unplug_device では 再開しない。blk_start_queue を使うこと。 --リクエストキューへのロックを保持し、カレント CPU の割り込みを 禁止した状態で呼び出すこと。 **引数 [#v015586b] -struct request_queue *q --unplug(栓を取り去ること)するリクエストキューを指定する。 --[[linux-2.6.25/request_queue]] **返り値 [#z99a05f1] -なし **参考 [#s71ac17c] -なし *実装 [#ia660202] /* * remove the plug and let it rip.. */ void __generic_unplug_device(struct request_queue *q) { if (unlikely(blk_queue_stopped(q))) return; -キューが停止状態ならば何もしない。 --[[linux-2.6.25/blk_queue_stopped()]] if (!blk_remove_plug(q)) return; -plug フラグをクリアする。既にクリアされていたら何もせず終了する。 --[[linux-2.6.25/blk_remove_plug()]] q->request_fn(q); -リクエスト関数(デバイスドライバの実装者が登録する)を呼び出す。 --blk_init_queue_node で初期化される。 ---[[linux-2.6.25/blk_init_queue_node()]] } EXPORT_SYMBOL(__generic_unplug_device); -関数をエクスポートする。 --[[linux-2.6.25/EXPORT_SYMBOL()]] *コメント [#x21436e5]