首先我想先承接上一篇博文赘述一下dentry和vfsmount是如何联系起来的。从 __lookup_mnt 中可以看到,可以通过vfsmount中相关dentry结构域找到dentry。而从一个dentry如何找到对应它的vfsmount结构呢?其实这是在最开始的初始化函数 do_path_lookup 中就通过把fs_struct 结构的 root 或 pwd 赋值给nd中的path(nd->path = fs->root;nd->path = fs->pwd),来把最开始的vfsmount 和 dentry联系好的。而在后面的过程中dentry或vfsmount的改变都会通过vfsmount中的dentry域紧密联系。
接下来讲这章主题。
之所以称之为简述,是因为这里只讲 do_lookup 的VFS过程,而这个过程比较简单。它包含两个函数:__d_lookup 和 real_lookup 。而所谓的VFS过程其实就是从 dentry 的缓存 dcache 中找到目标dentry。从do_lookup开始就不是沿着路径往上跑,