Linux内核 - 以编程方式检索写入时的块编号

时间:2010-04-10 16:45:03

标签: linux-kernel kernel

我想维护一个块号列表,因为它们是使用linux内核源物理写入的。我打算修改内核源代码来做到这一点。我只需要在内核源代码中找到处理写入物理分区的结构和函数,并在写入物理分区时获取块编号。

任何方式这样做?任何帮助表示赞赏。如果我能找到内核实际写入分区并返回块编号的位置,那就可以了。

2 个答案:

答案 0 :(得分:0)

我相信你可以完全从用户空间完成这项工作,无需使用blktrace界面修改内核。

答案 1 :(得分:0)

这不仅仅是一个的地方。例如,如果块设备是iSCSI或AoE目标,那么您将寻找各自的驱动程序,然后在另一端找到相同的驱动程序。

普通的SCSI,misc闪存设备等也是如此,减去网络交互。

VFS只是在一个方便,统一和一致的界面中将这些全部拉到一起,以便read()和write()等调用在提供缓冲的同时工作。实际的魔术,包括排序和写入障碍,由块开发驱动程序自己处理。

在使用设备映射器的情况下,路径会稍微改变。它来自vfs - > dm_(目标) - > blockdev_driver。