dentry和i-node的数量

时间:2012-05-26 10:56:06

标签: linux filesystems ext3

我在考试时遇到以下问题:

在ext3文件系统中,dentry的数量高于i-node的数量。

我必须用正确或错误回答并解释。

我的回答:

这是假的,因为dentries是目录之间的链接,基本上所有东西都是i-node(甚至是目录)所以#i-nodes> #dentries。

但是我还没有考虑到ext3文件系统。有没有我错过的或我的答案是正确的?

3 个答案:

答案 0 :(得分:4)

由于以下原因,我们可能会有更多的变形:

  1. 所有硬链接都有唯一的dentries,但指向相同的inode。
  2. 返回ENOENT的查找(文件或目录不存在)会创建一个dentry并将其inode指针标记为NULL(在技术上称为负dentry)。这有助于加快负面查找,即在不存在的路径上查找。

答案 1 :(得分:1)

但你可以有硬链接。所以你可以合理地将许多dentries指向同一个inode。

答案 2 :(得分:0)

dentries的数量始终高于干净卸载的文件系统中的inode数量。

考虑:每个inode(不包括通过打开文件句柄保持活动状态的未链接文件 - 这些文件在干净卸载中清除,或者在不干净卸载后恢复期间)至少有一个与之关联的dentry。每个目录inode至少有两个 - 来自其父级(或其自己的..的根)和.的链接。此外,对于每个子目录的.. dentry,目录还有一个与之关联的额外dentry。

因此,在绝对最小值处,还有一个比inode更多的dentry(对于只有根目录的FS)。其他目录和硬链接进一步膨胀。