Lions' 本読み (112)
を参考させて頂きつつ諸々確認を。
つうか、パスの解析まで入ってるって思ってませんでした (汗
いきなりあらら? と思ったのは 7534 の iget 手続きの呼び出し。戻り無視。
7534 iget(dp->i_dev, dp->i_number);
これ、テキスト 404p によれば以下とのこと。
iget (7276) を呼び出し、次の処理をする
dp に対応する i ノードがアンロックされるまで待つ
関連するファイルシステムがまだマウントされていることをチェックする
参照カウントをインクリメントする
i ノードをロックする
Lions' Commentary on UNIX より引用
以下、user 構造体の情報更新について控えを。
- u.u_pdir は新規作成 (flag が 1) の場合に設定 (7606)
- 新規作成されるディレクトリの struct inode オブジェクト
- u.u_offset な記述は 7608 のソレと思われる
- 新規作成時、7629 以降の処理の確認すること (TODO
- テキスト 405p の 7607 行の説明確認 (TODO
- u.u_dbuf については 7566-7581 の記述が該当するのかどうか
このあたりグローバルなオブジェクトを使った暗黙な前提に沿ったソレが多そうで非常にヤバい匂いがします。
とりあえず時間切れっぽいので明日以降もこのあたり継続ってことで引き続き確認の方向です。