|
|
1번째 줄: |
1번째 줄: |
| <uml> | | <uml> |
− | partition Ext4 { | + | partition VFS { |
− | "do_sync_read()" --> "generic_file_aio_read()" | + | "sys_read()" --> "vfs_read()" |
− | "generic_file_aio_read()" --> if "!O_DIRECT" then | + | "vfs_read()" --> "do_sync_read()" |
− | --> "do_generic_file_read()"
| + | |
− | endif
| + | |
− | | + | |
− | "do_generic_file_read()" --> if "!page" then
| + | |
− | --> "page_cache_sync_readahead()"
| + | |
− | "page_cache_sync_readahead()" --> "ondemand_readahead()"
| + | |
− | "ondemand_readahead()" --> "__do_page_cache_readahead()"
| + | |
− | "__do_page_cache_readahead()" --> "read_pages()"
| + | |
− | "read_pages()" --> "blk_start_plug()"
| + | |
− | endif
| + | |
− | | + | |
− | "do_generic_file_read()" --> if "PageReadahead(page)" then
| + | |
− | --> "page_cache_async_readahead()"
| + | |
− | "page_cache_async_readahead()" --> "ondemand_readahead"
| + | |
− | "ondemand_readahead" --> "__do_page_cache_readahead()"
| + | |
− | "__do_page_cache_readahead()" --> "read_pages()"
| + | |
− | "read_pages()" --> "blk_start_plug()"
| + | |
− | endif
| + | |
− | | + | |
− | "do_generic_file_read()" --> "ext4_readpages()"
| + | |
− | "ext4_readpages()" -->"mpage_readpages()"
| + | |
− | "mpage_readpages()" --> "mpage_bio_submit()"
| + | |
| } | | } |
− |
| |
| | | |
| | | |
| </uml> | | </uml> |