发新话题
打印

请教一个vfs文件系统的问题

请教一个vfs文件系统的问题

不同的文件系统mount上之后它们的vfsmount变量是怎么组织的,靠mnt_list连起来吗?如果是,它是在哪里做这个链接工作的?vfsmntlist跟它们的关系是怎么样的?谢谢。      

TOP

下面是根据2.2.14:
/fs/super.c,line 130

        if (vfsmntlist == (struct vfsmount *)NULL) {
                vfsmntlist = vfsmnttail = lptr;
        } else {
                vfsmnttail->mnt_next = lptr;
                vfsmnttail = lptr;
        }

这里使用了vfsmntlist指向系统中第一次安装的文件系统,他指向一个链表(本身是这个链表的第一个元素),同时使用vfsmnttail标识这个链表中的当前文件系统。
所以是用mnt_next来联系的。
mnt_list是什么,不知道。我刚刚开始看内核,才看到内存管理。
有问题的话,还请多指点指点。      

TOP

sorry, 我没讲清楚,2.2的我看懂了,我现在看的是2.4.16,好像不同了,还没看懂。      

TOP

发新话题