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