gpt4 book ai didi

linux 内核路径遍历。查找慢的解释

转载 作者:太空宇宙 更新时间:2023-11-04 10:16:06 24 4
gpt4 key购买 nike

我正在尝试了解 linux 内核路径遍历。下面的案例是如何解决的:

对于路径,

“/ext3_dir/ext4_dir”

假设我们有以下挂载的文件系统,ext4_dir 是 ext4 文件系统的根目录,挂载在 ext3 目录 ext3_dir 上。

问题 1:是否有可能在任何时候 ext4_dir 的 dentry 都不存在于 dentry 缓存中,或者在将 ext4 安装到 ext3 之上之后它总是存在?

Q2:如果 dcache miss case 是可能的,那么在下面的慢速路径中:

link_path_walk->walk_component->lookup_slow()

第一个dentry被分配

dentry = d_alloc_parallel(dir, name, &wq);

然后我们调用

inode->i_op->lookup(inode, dentry, flags);

调用实际的文件系统函数读取父目录inode数据 block 内的组件,这里是ext3_dir。由于ext3_dir在ext3文件系统中,那么在这种情况下如何访问ext4文件系统将ext4_dir的数据读入dentry?

谢谢,卡 PIL

最佳答案

代表文件系统挂载点的 Dentry 总是在缓存中。此外,文件系统的根 inode 始终存在

因此,不需要文件系统的函数来导航到“/ext3_dir/ext4_dir”:dentry 和 inode 都是使用 VFS 缓存提取的。

关于linux 内核路径遍历。查找慢的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46225628/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com