Linux Kernel(2.6)の実装に関するメモ書き

block_read_full_page()


Rev.6を表示中。最新版はこちら

概要

block_read_full_page()はPageCacheへのデータの読み込みを行う汎用ルーチン。

この関数は指定したページに対応するディスクブロックからファイルデータを読み込みページにデータを格納する(図1)。


図1 データの読み込み

この関数は、ファイルリードの過程でディスクからPageCacheへファイルデータを読み込むのに使用する。address_space_operationsのreadpage,readpagesに登録されているPageCacheへのデータ読み込みハンドラ(もしくはその延長の処理)から呼び出される(図2)。


図2 block_read_full_page()の位置づけ


mpageとの関係

編集中

実装

block_read_full_page(struct page *page, get_block_t *get_block)
pageで指定されるPageCacheにディスクからデータを読み込むRead I/Oを開始する。
get_blockには「ファイル上のブロック番号」→「ディスクブロック番号」に変換するルーチンが渡される。これはファイルシステム毎に異なる。例えばExt2ならext2_get_block()。

編集中

関連関数

end_buffer_async_read()



最終更新 2007/03/02 10:33:42 - kztomita
(2007/03/02 10:10:08 作成)
添付ファイル
block_read_full_page.png - kztomita
read_op.png - kztomita
page-buffer.png - kztomita
io_completion.png - kztomita


リンク
最近更新したページ
検索