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()。
編集中