tarfs について (7)

直前エントリにて出てきた struct super_operations 型の tarfs_sops について。

read_inode 属性

セットされているのは tarfs_read_inode() 手続きのポインタ。ちなみに read_inode は suer_operations - 詳解ファイルシステムによれば_i ノードオブジェクトの初期化処理_とある。むむむ、と言いつつ中身を確認。
ざくっと整理すると

  • lookup_tarent() 手続きで struct tarent なオブジェクト取得
    • inode->i_sb と inode->i_ino から取得
    • 渡された struct inode なオブジェクトのスーパーブロックと i ノード番号でナニ
    • lookup_tarent() 手続きは src/tarent.c にて定義
    • とりあえず掘るのは別途 (を
  • 引数で渡された struct inode オブジェクトの属性に lookup_tarent() 手続きの戻りの struct tarent オブジェクトな属性をいくつか設定
  • 引数で渡された struct inode オブジェクトの i_mode 属性の値で条件分岐
    • S_ISREG なら
    • S_ISDIR なら
    • S_ISLNK なら
    • 上記以外なら

いっちゃん最後のナニは基本手続きポインタを渡している風。なるほど。

ひらメソッド的には

上記で出てきた手続きポインタなソレをきちんと確認した方が良さげ。