vfs之mount()

首先明确一点,mount是vfs层的操作.

它的核心是从设备(可能是一个分区)上读出一个super block,把这个分区对应的文件系统的vfs函数表注册到super block的sb_opeartions指针里,然后初始化一些关键性的成员,例如block size.另外一个工作是,捏造出根目录的dentry,mountpoint需要这个root dentry.

 

一个目录能挂在多个设备,是因为一个设备被挂在到多个目录上导致的,例如分区A同时挂在到/tmp和/xxx目录上,而分区A的根目录下有AA这个目录.现在,把设备B挂在到/tmp/AA,把设备C也挂在到/xxx/AA上,这当然是可以的.

因为这两个AA相应dentry对应的parent是不一样的.

更简单的说,同一个目录挂在不同的设备,那pathwalk抵达这个目录的路径肯定是不同的,也就是这个目录对应的设备,肯定是被挂载到不同的目录上.

posted @ 2019-12-25 08:04  相印  阅读(773)  评论(0)    收藏  举报