linux中,vfsmount结构记录挂载文件系统。其数据成员mnt_parent指向该文件系统的父文件系统, mnt_mounts是孩子文件系统的链头部,mnt_child指向兄弟结点
例如 系统的根文件系统是ext3格式,在/mnt/winc /mnt/wind /mnt/wine 目录上分别挂载三个分区(可以认为是windows下的c d e 盘)。这样系统就为新挂载的三个文件系统分别分配了vfsmount结构,并将其 mnt_parent 指向根文件系统的vfsmount结构,通过mnt_child链入跟文件系统vfsmount的mnt_mounts 链表,初始化mnt_mounts指向自身.
内核代码中,对一特定vfsmount为根的mount树遍历,用到了先根遍历算法:
static struct vfsmount *next_mnt(struct vfsmount *p, struct vfsmount *root)
{
struct list_head *next = p->mnt_mounts.next;
if (next == &p->mnt_mounts) {
while (1) {
if (p == root)
return NULL;
next = p->mnt_child.next;
if (next != &p->mnt_parent->mnt_mounts)
break;
p = p->mnt_parent;
}
}
return list_entry(next, struct vfsmount, mnt_child);
}
linux系统中mount树结构与遍历
转载请注明出处:服务器评测 » linux系统中mount树结构与遍历
相关推荐
- *裸机专用服务器仅需58美元,最高可达12核和72GB RAM- CloudDC.us
- *[香港]UnderHost – 香港专用服务器 – 99.99% 正常运行时间,低延迟 CN2
- *Budget 专用服务器 29.99 美元/月🇺🇸 🇫🇷 🇬🇧 🇨🇦起 |5 到 64 个 IP – HostNamaste
- *便宜的专用服务器 ★ 起价@ $28/M ★ 12TB磁盘促销 ★ IPMI ★ 双RAM & XFER!
- 129 美元/月双 E5-2620 v2 + 128GB RAM + 2x1TB SSD + 2TB 备份 + 1Gbps @ 100TB 限时优惠!
- DARKVPS – 便宜的裸机 RDP – 4vCPU-128vCPU – 防挂起 – 可续订 – 43💥 美元起
- PLiKhost:便宜且可靠的印度尼西亚(IIX)专用服务器 – 雅加达
- 优惠从 62 美元/月起 |32GB DDR3 内存 |10 TB 带宽 |印度位置