2006-07-14

mountシステムコール

システムコールからのマウントの流れ

sys_mount()
 ユーザ空間から受け取ったパス名などをカーネル空間のバッファに移す
do_mount()
 マウントするパス名をnameidataに入れてマウント処理を行う
do_new_mount()
 do_kern_mount()を呼び出してマウントし、vfsmount構造体をdo_add_mount()に渡してnamespaceツリーに追加する
do_kern_mount()
 get_sb()でスーパーブロックを取得し、その値からmnt構造体を初期化する


スーパーブロックとかi-nodeからパス名を取得するにはどうすればいいんだろう。。
地道にディレクトリ名を繋ぎ合わせていかなきゃだめなのかな。