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树结构与遍历
相关推荐
- 40元超值特惠 ☆ ARP Thunder™ 独立服务器,4GB内存/80GB SSD+200GB SATA硬盘/5TB流量
- 【高性能主机】8GB DDR3内存 + 1Gbps带宽,支持/24 IPv4与/64 IPv6及反向解析,首发仅$54起!
- DEDICATED.COM 限时特惠:Intel® Xeon™ E3-1270v1/v2 独立服务器,16GB内存 + 256GB SSD,仅 $43.99/月
- 价格直降:英特尔至强专业服务器,月付仅65美元起 • 覆盖美国与欧洲地区
- *💥 [促销]高级裸机 RDP 20% 经常性折扣 – WHT 独家💥
- 存储服务器 36 TB 仅 62 美元/月 |NetDynamics 有限责任公司
- ServerStadium – 低成本的即时专用服务器
- IOFLOOD.com █ 款最新的 *EPYC* 现已上市!█ 8 + 16 核
服务器评测



