Linuxカーネルに関する技術情報を集めていくプロジェクトです。現在、Linuxカーネル2.6解読室の第2章までを公開中。
inodeビットマップ域などのアクセスが遅くなる可能性もあるが、 アクセス頻度が高いため、案外バッファキャッシュから落ちない ような気がする。
逆にファイル削除に伴うiノードの解放は、ext2_free_inode関数によって行われる。単純に解放対象となったiノードに対応するiノードビットマップのビットをクリアするのみである。メモリiノード自体の解放は、呼び出し側(vfs)で行っている。
ext2_free_inode(メモリiノード) iノードビットマップを読み込む(load_inode_bitmap関数) ビットマップ上のiノードに対応するビットをクリア ブロックグループディスクリプタ読み込み(ext2_get_group_desc関数) ブロックグループディスクリプタが管理するフリーiノード数を1増やす ◇ブロックグループディスクリプタの属するバッファを遅延書き込み要求(mark_buffer_dirty) スーパブロックが管理するフリーiノード数を1増やす ◇スーパブロックを遅延書き込み要求(mark_buffer_dirty) ◇iノードビットマップを遅延書き込み要求(mark_buffer_dirty) if(SYNCマウント?) { ◆iノードビットマップをディスクに書き込む(ll_rw_block関数、wait_on_buffer関数) }
問題点など
(NIS)HirokazuTakahashi
2000年12月09日 (土) 23時55分06秒 JST1
[PageInfo]
LastUpdate: 2008-08-27 14:17:38, ModifiedBy: hiromichi-m
[Permissions]
view:all, edit:login users, delete/config:members