Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux bio结构-bi_扇区在写入时发生更改_Linux_Linux Kernel_Block Device - Fatal编程技术网

Linux bio结构-bi_扇区在写入时发生更改

Linux bio结构-bi_扇区在写入时发生更改,linux,linux-kernel,block-device,Linux,Linux Kernel,Block Device,我试图理解并修改Linux网络块设备驱动程序(/drivers/block/nbd.c) 当设备收到读取请求时,我将记录作为该请求一部分的bio结构的“bi_扇区” 例如,我得到7860224作为bio结构的扇区号。通过阅读有关bio struct的文档,我了解到该扇区号是该bio将在其中启动操作的硬件起始扇区号。我也正在打印此bio中单个bio_vec中单个物理页面中包含的数据。我能够看到我正在阅读的文件的内容 现在,我正在替换文件中的几个字符,然后保存文件。写入请求到达驱动程序,我想记录写入

我试图理解并修改Linux网络块设备驱动程序(/drivers/block/nbd.c)

当设备收到读取请求时,我将记录作为该请求一部分的bio结构的“bi_扇区”

例如,我得到7860224作为bio结构的扇区号。通过阅读有关bio struct的文档,我了解到该扇区号是该bio将在其中启动操作的硬件起始扇区号。我也正在打印此bio中单个bio_vec中单个物理页面中包含的数据。我能够看到我正在阅读的文件的内容


现在,我正在替换文件中的几个字符,然后保存文件。写入请求到达驱动程序,我想记录写入bio结构的BIU扇区。我希望它应该和前一个一样-7860224。但事实并非如此。我得到的扇区号是7880704。现在,如果我再次读取该文件,我将获得7880704作为扇区号。我不知道发生了什么事。我的理解是,如果我写的是与我读的相同的块,那么我应该在bio结构中看到相同的扇区号。这种理解有缺陷吗

您正在哪个文件系统上运行测试?(如果是花式的,可以尝试简单的。)