0

その場所を見つけて、そのリクエストにフラグを設定して、ブロック io レイヤーでこれらのリクエストを識別できるようにします。バイオ構造を変更し、追加のフラグを追加しました。ディスクに送信されたすべての間接ブロック要求に対してこのフラグを設定したいと考えています。

4

1 に答える 1

2

あなたが探しているのは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_readret = filp->f_op->aio_read(&kiocb, &iov, 1, kiocb.ki_pos);`` in/fs/ext3/inode.c で定義されているdo_sync_read wherefilp->f_op->aio_read is the function pointer ofgeneric_file_aio_read`によって呼び出されます

do_sync_readreadの構造体定義でシステム コールにマッピングされgeneric_ro_fopsます。

于 2012-03-05T11:24:08.570 に答える