Read(User - ext4)

(버전 사이의 차이)
이동: 둘러보기, 찾기
8번째 줄: 8번째 줄:
 
"vfs_read()" -->  "do_sync_read()"
 
"vfs_read()" -->  "do_sync_read()"
 
"do_sync_read()" -->"generic_file_aio_read"
 
"do_sync_read()" -->"generic_file_aio_read"
 
"generic_file_aio_read" -->"generic_segment_checks"
 
"generic_segment_checks" --> if "error" then
 
-->[error] (*)
 
endif
 
 
"generic_segment_checks" --> if "filp->f_flag  check" then
 
--> [O_DIRECT]"filemap_write_and_wait_range"
 
else
 
-->"do_generic_file_read"
 
"filemap_write_and_wait_range" --> if "return O" then
 
--> "generic_file_direct_IO"
 
endif
 
 
"filemap_write_and_wait_range" -> "filemap_fdatawrite_range"
 
"filemap_fdatawrite_range" --> "do_writepages"
 
"do_writepages" --> "generic_writepage"
 
"generic_writepage" -->"write_cache_pages"
 
"write_cache_pages" --> "writepage"
 
 
"do_generic_file_read" --> "find_get_page(mapping, index)"
 
-->[no page] "page_cache_alloc_cold(mapping)"
 
"find_get_page(mapping, index)" --> "add_to_page_cache_lru"
 
"add_to_page_cache_lru" --> if "error check" then
 
-->[error]"page_cache_release(page)"
 
else
 
-->[error X]"ext4_readpage(struct file *file, struct page *page)"
 
"page_cache_release(page)"-->"file_accessed(filp)"
 
 
}
 
}
  

2014년 5월 20일 (화) 14:36 판

개인 도구
이름공간
변수
행위
둘러보기
구성원
연구
연구실
기타
도구모음
인쇄/내보내기