Lions' 本読み (107)

朝練エントリです。どうも maknode 手続きから呼び出される ialloc 手続きが忘れられない模様。というか色々と面白いです。
mount されてるファイルシステムのスーパーブロックなオブジェクトは配列で管理されてて getfs 手続きで取得してて、そこからアサイン可能な i-node 番号をナニしてます。

7072    fp = getfs(dev);

/* snip */

7076    if(fp->s_ninode > 0) {
7077            ino = fp->s_inode[--fp->s_ninode];

で、次の 7078 で iget 手続きを使って云々してるのですその中では inode な配列に引数で指定されたオブジェクトがあるかどうかを云々しつつ (他の条件も確認)、それが存在しなかった場合、inode な配列から新規なオブジェクトとして払いだしている模様。
で、ここを掘りすぎてもナニ、と思いつつ wdir 手続きに目をやったんですが、ちょっとごめんなさい状態です。

うーむ

なんとなく朝練な 1h 未満の時間で云々というのは時間てきに微妙になってきたのかどうか。とりあえずこつこつ頑張らせて頂く方向で。