【发布时间】:2012-12-07 15:45:19
【问题描述】:
我在 linux 内核代码中查看了 inode 的代码,但我无法弄清楚 inode 中的数据指针在哪里。我知道有 15 个指针 [0-14],其中 12 个是直接的,1 个是单间接的,1 个是双间接的,1 个是三重间接的。
谁能找到这些数据成员。另外请说明你是如何找到这些的,因为我在谷歌上搜索了很多次不同的关键词,但都是徒劳的。
【问题讨论】:
-
“有 15 个指针 [0-14],其中 12 个是直接的,1 个是单间接的,1 个是双间接的,1 个是三间接的”这对于 ext2/3/4 是正确的,但对于 inode 不是一般
-
好的。我不知道,但我特别担心 ext4。
-
在 linux 内核源代码中查看
fs/ext4/ext4.h以获取struct ext4_inode。 “数据指针”是块号(前 12 个是直接块号,第 13 个是块的编号,其中填充了从 12 到 (blocksize/sizeof(__le32) + 12) 的另一个块索引 - 这称为“单间接',第 14 位是保存数据块地址的块地址的块的编号 - 双重间接,第 15 位 - 用于三重间接) -
@EarlGray:这看起来像是一个答案。
-
@EarlGray:请将其写成答案,以便我接受。
标签: linux linux-kernel kernel