Я считаю, что вы ищете, это вызов ext3_get_branch
в / fs / ext3 / inode.c - это то, что вы ищете.который читает цепочку непрямых блоков, ведущих к данным.
Трассировка вызова до считанного системного вызова выглядит следующим образом: / 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_readpage
вызывается по mapping->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
вызывается ret = filp->f_op->aio_read(&kiocb, &iov, 1, kiocb.ki_pos);`` in
do_sync_read where
filp-> f_op-> aio_read is the function pointer of
generic_file_aio_read`, определенный в / fs / ext3 / inode.c
do_sync_read
, сопоставляется с системным вызовом read
в определении структурыgeneric_ro_fops
.