函数逻辑报告 |
Source Code:fs\direct-io.c |
Create Date:2022-07-29 10:46:35 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:An autonomous function to put a chunk of a page under deferred IO.* The caller doesn't actually know (or care) whether this piece of page is in* a BIO, or is under IO or whatever. We just take care of all possible * situations here
函数原型:static inline int submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page, unsigned offset, unsigned len, sector_t blocknr, struct buffer_head *map_bh)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct dio * | dio | |
| struct dio_submit * | sdio | |
| struct page * | page | |
| unsigned | offset | |
| unsigned | len | |
| sector_t | blocknr | |
| struct buffer_head * | map_bh |
| 831 | ret等于0 |
| 833 | 如果op恒等于REQ_OP_WRITE则 |
| 837 | task_io_account_write(len) |
| 848 | 转到:out |
| 854 | 如果The page 则 |
| 855 | ret等于Put cur_page under IO |
| 857 | The page = NULL |
| 866 | Where it starts 等于blocknr |
| 868 | out : |
| 873 | 如果prev block is at a boundary 则 |
| 874 | ret等于Put cur_page under IO |
| 878 | The page = NULL |
| 880 | 返回:ret |
| 名称 | 描述 |
|---|---|
| dio_zero_block | If we are not writing the entire block and get_block() allocated* the block for us, we need to fill-in the unused portion of the* block with zeros |
| do_direct_IO | Walk the user pages, and the file, mapping blocks to disk and generating* a sequence of (page,offset,len,block) mappings. These mappings are injected* into submit_page_section(), which takes care of the next stage of submission |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |