その場所を見つけて、そのリクエストにフラグを設定して、ブロック io レイヤーでこれらのリクエストを識別できるようにします。バイオ構造を変更し、追加のフラグを追加しました。ディスクに送信されたすべての間接ブロック要求に対してこのフラグを設定したいと考えています。
1 に答える
あなたが探しているのはext3_get_branch
、/fs/ext3/inode.cでの呼び出しが探しているものだと思います。データにつながる間接ブロックのチェーンを読み取ります。
read syscall までの呼び出しトレースは次のとおりです。 /fs/ext3/inode.c
ext3_get_branch
によって呼び出されますext3_get_blocks_handle
ext3_get_blocks_handle
によって呼び出されますext3_get_block
ext3_get_block
/fs/mpage.cmpage_readpage
で呼び出される関数ポインタとして渡されます。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
/fs/ext3/inode.c で定義されているdo_sync_read where
filp->f_op->aio_read is the function pointer of
generic_file_aio_read`によって呼び出されます
do_sync_read
read
の構造体定義でシステム コールにマッピングされgeneric_ro_fops
ます。