C 为什么装载结构有两个装载点字段?
我想了解linux文件系统是如何工作的C 为什么装载结构有两个装载点字段?,c,linux,linux-kernel,filesystems,C,Linux,Linux Kernel,Filesystems,我想了解linux文件系统是如何工作的struct mount具有mnt\u mountpoint字段,该字段指向挂载点dentry并用于路径查找 struct mount { /*...*/ struct dentry *mnt_mountpoint; /*...*/ struct mountpoint *mnt_mp; /*...*/ } 此时我不明白第二个mountpoint字段的用途是什么?它指向mountpoint结构,而该结构又有指向另一个
struct mount
具有mnt\u mountpoint
字段,该字段指向挂载点dentry并用于路径查找
struct mount {
/*...*/
struct dentry *mnt_mountpoint;
/*...*/
struct mountpoint *mnt_mp;
/*...*/
}
此时我不明白第二个mountpoint字段的用途是什么?它指向mountpoint
结构,而该结构又有指向另一个mountpoint dentrym_dentry
的指针
struct mountpoint {
struct hlist_node m_hash;
struct dentry *m_dentry;
struct hlist_head m_list;
int m_count;
};
图中还显示了struct mountpoint。曾几何时,它曾经是一部分
of struct dentry-给定装入点上所有装入的列表。自从
为了一小笔钱而把每一个牙齿都塞满是没有意义的
那个分数将成为任何人的挂载点,那个东西被分离了
我们拥有的是
- 为已安装的假牙设置的假牙标记(
) 当前装入点DCACHE\u MOUNTED
- 对于其中的每一个,我们都有一个struct mountpoint实例(确切地说 每种假牙一颗)
struct dentry
。m_dentry
字段用于区分落入同一散列桶中的不同装入点
我猜struct mount
包含对struct mountpoint
的引用,主要用于清理。也就是说,当struct mount
被销毁时,我们称之为put\u mountpoint(mnt\u mp)
m_计数
递减,如果达到零,则装入点被销毁