bio struct - bi_sector在写入时发生了变化

时间:2013-11-24 04:57:33

标签: linux linux-kernel block-device

我正在尝试理解和修改Linux网络块设备驱动程序(/drivers/block/nbd.c)。

当设备获得读取请求时,我正在记录作为此请求一部分的生物结构的“bi_sector”。

例如,我得到7860224作为生物结构的扇区号。通过阅读有关生物结构的文档,我了解到这个扇区编号是该生物开始操作的硬件起始扇区编号。我还在这个bio中的单个bio_vec中打印单个物理页面中包含的数据。我能够看到我实际阅读的文件的内容。

现在,我正在替换文件中的少数字符,然后保存文件。写请求来到驱动程序,我想记录写生物结构的bi_sector。我期待它应该与前一个相同 - 7860224.但事实并非如此。我得到的扇区号为7880704.现在,如果我再次读取该文件,我将获得7880704作为扇区号。我不确定发生了什么。我的理解是,如果我正在编写我读过的相同块,那么我应该在bio结构中看到相同的扇区号。这种理解有缺陷吗?

0 个答案:

没有答案