[[PageNavi(internal22-navi)]] {{{ comment h2w-title:問題点など }}} ==== 問題点など ==== #SECTION0310122010000000000000 1. 移動元のディレクトリから削除したのちに、移動先のディレクトリへの登録が行われるため、どこのディレクトリからも参照されななくなる瞬間がある。このタイミングでシステムがダウンすると、このファイルは失われることになる。 1. rename処理(ext2_rename)の途中で落ちると、リンクカウントが1の状態のまま二つのディレクトリに登録されてしまう可能性もある。このタイミングでシステムクラッシュしても、fsckにより、容易に修復可能である。ただし、fsck前にこのファイルを削除すると、存在しないiノードを指すディレクトリエントリが残る。 1. rename処理により上書きされたファイルがリンクされたものであった場合、そのiノードが持つリンク数は遅延書き込みとなっているため、このタイミングでシステムがクラッシュすると、実際にディレクトリに登録されている数より一つ大きいリンク数をiノードが保持してしまう。これは、fsckにより容易に修復可能である。もしfsckを行わずに運用した場合でも、このファイルの削除時に浮きブロックとなるだけであり、ファイルシステム構造破壊には継らない。 1. 移動先のディレクトリの拡張が発生した場合、ディレクトリサイズを保持する移動先ディレクトリiノードを同期書き込みしていない。このタイミングでシステムがクラッシュすると、移動したファイルが参照できなくなる可能性がある。ただし、ファイルシステム構造の破壊に継るものではない。 1. ディレクトリのrename処理において、".." の更新が遅延書き込みになっている。システムクラッシュが発生すると、移動したディレクトリに古い親ディレクトリ情報が残ることがある。これもfsckにより容易に修正可能である。もし、fsckなしで運用した場合でも、パスサーチルーチンは".." の解決をVFSレベルで行ってしまうため、現在の版のlinuxのアルゴリズムでは正常に動作してしまう。しかし、このディレクトリを再びrenameしようとすると、".." のエラーチェックを行っているため、renameが失敗する。 ---- ''(NIS)HirokazuTakahashi [[BR]]2000年06月11日 (日) 22時29分57秒 JST'' [[PageNavi(internal22-navi)]]