ext3源代码请求读取间接块发送到哪里?

时间:2012-03-05 08:24:21

标签: linux-kernel ext3

我想找到那个地方并在该请求中设置一个标志,这样我就可以在块io层中识别这些请求。 我更改了生物结构并添加了一个额外的标志,我想为发送到磁盘的所有间接块请求设置此标志。

1 个答案:

答案 0 :(得分:2)

我相信你在寻找的是 您正在寻找 /fs/ext3/inode.c 中对ext3_get_branch的调用。 它读取导致数据的间接块链。

直接读取系统调用的调用跟踪如下: /fs/ext3/inode.c

ext3_get_branch

调用

ext3_get_blocks_handle ext3_get_blocks_handle

调用

ext3_get_block

ext3_get_block作为函数指针传递,由mpage_readpage

/fs/mpage.c 中的ext3_readpage调用

<强> /mm/filemap.c

<{>} ext3_readpagemapping->a_ops->readpage(filp, page);

中的do_generic_file_read调用 do_generic_file_read

调用

generic_file_aio_read

<强> /fs/read_write.c

generic_file_aio_read / fs / ext3 / inode中定义的ret = filp->f_op->aio_read(&kiocb, &iov, 1, kiocb.ki_pos);`` in do_sync_read where filp-&gt; f_op-&gt; aio_read is the function pointer of generic_file_aio_read`调用。 ç

do_sync_read映射到read的结构定义中的generic_ro_fops系统调用。