函数逻辑报告 |
Source Code:mm\filemap.c |
Create Date:2022-07-27 15:25:33 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:lemap_fault - read in file data for page fault handling*@vmf: struct vm_fault containing details of the fault* filemap_fault() is invoked via the vma operations vector for a* mapped memory region to read in file data during a page fault
函数原型:vm_fault_t filemap_fault(struct vm_fault *vmf)
返回类型:vm_fault_t
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct vm_fault * | vmf |
| 2487 | ret等于0 |
| 2490 | 如果此条件成立可能性小(为编译器优化)(offset >= max_off)则返回:VM_FAULT_SIGBUS |
| 2497 | 如果此条件成立可能性大(为编译器优化)(page)且非FAULT_FLAG_xxx flags 按位与Second try 的值则 |
| 2503 | 否则如果非page则 |
| 2505 | Disable counters |
| 2507 | ret等于VM_FAULT_MAJOR |
| 2509 | retry_find : |
| 2513 | 如果非page则 |
| 2527 | 转到:retry_find |
| 2529 | VM_BUG_ON_PAGE(Get the offset in PAGE_SIZE.* (TODO: hugepage should have ->index in PAGE_SIZE) != offset, page) |
| 2535 | 如果此条件成立可能性小(为编译器优化)(!PageUptodate(page))则转到:page_not_uptodate |
| 2543 | 如果fpin则 |
| 2545 | 转到:out_retry |
| 2553 | 如果此条件成立可能性小(为编译器优化)(offset >= max_off)则 |
| 2556 | 返回:VM_FAULT_SIGBUS |
| 2559 | ->fault handlers should return a* page here, unless VM_FAULT_NOPAGE* is set (which is also implied by* VM_FAULT_ERROR).等于page |
| 2560 | 返回:ret按位或VM_FAULT_LOCKED |
| 2562 | page_not_uptodate : |
| 2569 | ClearPageError(page) |
| 2570 | fpin等于maybe_unlock_mmap_for_io(vmf, fpin) |
| 2572 | 如果非error则 |
| 2574 | 如果非PageUptodate(page)则error等于负EIO |
| 2581 | 如果非error或error恒等于AOP_TRUNCATED_PAGE则转到:retry_find |
| 2586 | 返回:VM_FAULT_SIGBUS |
| 2588 | out_retry : |
| 2598 | 返回:ret按位或VM_FAULT_RETRY |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |