函数逻辑报告 |
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 插件可实现:逻辑报告 代码生成和批量转换代码 |