Linux kernel 内存inode中的ext4指针

Linux kernel 内存inode中的ext4指针,linux-kernel,ext4,Linux Kernel,Ext4,我试图在内核模块中检索ext4文件系统inode中的直接/间接etc地址。我知道我需要查看ext_inode_info struct(我通过使用相关vfs_inode的容器_来完成这项工作)。 但我应该调查哪个领域呢 例如,在哪里可以找到第一个直接指针?我以为它存储在I_数据数组中(在ext3_inode_info中)。 但是对于ext4 inode,当我检查I_数据中的第一个条目时,我得到的扇区地址与保存第一个数据块地址的实际扇区不太相似 任何帮助都将不胜感激 ==编辑== 好的,所以我似乎已

我试图在内核模块中检索ext4文件系统inode中的直接/间接etc地址。我知道我需要查看ext_inode_info struct(我通过使用相关vfs_inode的容器_来完成这项工作)。 但我应该调查哪个领域呢

例如,在哪里可以找到第一个直接指针?我以为它存储在I_数据数组中(在ext3_inode_info中)。 但是对于ext4 inode,当我检查I_数据中的第一个条目时,我得到的扇区地址与保存第一个数据块地址的实际扇区不太相似

任何帮助都将不胜感激

==编辑==


好的,所以我似乎已经理解了基本问题。我有一个基于区段的ext4文件系统。未意识到此更改,并且默认情况下已启用此更改。那么,有没有一种简单的方法可以通过偏移量提取块的物理地址呢?通过查看第一个区段,我再次尝试查看第一个物理块(逻辑0),但我得到了一些乱七八糟的数字(尽管每个inode/文件都是一致和唯一的,所以取得了一些进展)。

为什么?你想做什么?我想收集一个跟踪和一些关于设备IO请求的统计数据,我想展示的一件事是与文件位置的关系。我看过这篇文章。如果我理解正确,它指的是磁盘上的inode(ext4\u inode)。内存中inode(ext4\u inode\u info)没有i\u块数组。对我来说,i_数据保存它是有道理的,但事实是-我看到其中的数据与相关的磁盘位置不对应。