Lions' 本読み (116)

今朝も残 30m ですが朝練。継続は writei 手続きの確認な模様。
つうかこれ、creat 手続き始点で wdir 手続きから writei 手続きが呼び出される場合、

  • writei に渡される u.u_pdir は creat 内で呼び出している namei で設定
    • 具体的には 7606 行、かな
  • writei が依存している u.u_count、u.u_segflg、u.u_base は wdir 手続き内で設定されている
  • writei が依存している u.u_offset は namei 手続き内で設定

で、結局 namei 手続きをうんうん言いながら睨んでるんですが、7609 な分岐な場合というのはディレクトリエントリに空きが無かった場合、になるのかな。

7609                            dp->i_flag =| IUPD;

最初の空きで eo にオフセットが設定されるつくりになってると見て

7640    if(u.u_dent.u_ino == 0) {
7641            if(eo == 0)
7642                    eo = u.u_offset[1];
7643            goto eloop;
7644    }

良いのかどうか。

ということで

今回も writei の中身は掘れぬまま時間切れ。