*参照元 [#vd530e0a] #backlinks *説明 [#t5e25c95] -パス: [[linux-2.6.33/block/blk-core.c]] -FIXME: これは何? --説明 -unplug 用タイマーの期限が来ると呼び出される関数である。 --ブロックデバイス用のワークキューに、 unplug の仕事を追加するだけ。 --[[linux-2.6/タイマー]] **引数 [#jf196237] **引数 [#i2bf5ea8] -unsigned long data -- --タイマー作成時に渡したデータ。 このタイマーの場合は、 struct request_queue へのポインタを unsigned long にキャストした値が渡される。 --[[linux-2.6.33/request_queue]] **返り値 [#r1675b82] **返り値 [#fcd2bb88] -なし **参考 [#m3c67715] -unplug_work の初期化をしている関数 --[[linux-2.6.33/blk_alloc_queue_node()]] -unplug_work は blk_unplug_work() を実行するように初期化されている。 -FIXME: 特殊なケースもあるかもしれないので、あれば追加。 --[[linux-2.6.33/blk_unplug_work()]] *実装 [#la66a129] void blk_unplug_timeout(unsigned long data) { struct request_queue *q = (struct request_queue *)data; - --[[linux-2.6.33/request_queue]] trace_block_unplug_timer(q); kblockd_schedule_work(q, &q->unplug_work); -unplug_work は work_struct 型 --[[linux-2.6.33/work_struct]] - --[[linux-2.6.33/trace_block_unplug_timer()]] - --[[linux-2.6.33/kblockd_schedule_work()]] } *コメント [#m5aca85d]