函数逻辑报告 |
Source Code:fs\direct-io.c |
Create Date:2022-07-29 10:46:31 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:dio_complete() - called when all DIO BIO I/O has been completed* This drops i_dio_count, lets interested parties know that a DIO operation* has completed, and calculates the resulting return code for the operation
函数原型:static ssize_t dio_complete(struct dio *dio, ssize_t ret, unsigned int flags)
返回类型:ssize_t
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct dio * | dio | |
| ssize_t | ret | |
| unsigned int | flags |
| 239 | transferred等于0 |
| 248 | 如果ret恒等于负cb queued, will get completion event 则ret等于0 |
| 251 | 如果IO result 则 |
| 252 | transferred等于IO result |
| 255 | 如果op恒等于REQ_OP_READ且offset加transferred大于_size when submitted 则transferred等于_size when submitted 减offset |
| 259 | 如果此条件成立可能性小(为编译器优化)(ret == - EFAULT)且transferred则ret等于0 |
| 263 | 如果ret恒等于0则ret等于 from get_user_pages() |
| 265 | 如果ret恒等于0则ret等于IO error in completion path |
| 267 | 如果ret恒等于0则ret等于transferred |
| 270 | 如果IO completion function 则 |
| 272 | err等于IO completion function (kiocb , offset, ret, copy from map_bh.b_private ) |
| 289 | 如果flags按位与Can invalidate pages 且ret大于0且op恒等于REQ_OP_WRITE且nrpages则 |
| 299 | 结束I/O信号请求 |
| 301 | 如果flags按位与This is async IO 则 |
| 307 | 文件偏移加等于transferred |
| 311 | ki_complete(kiocb , ret, 0) |
| 314 | kmem_cache_free(dio_cache, dio) |
| 315 | 返回:ret |
| 名称 | 描述 |
|---|---|
| dio_aio_complete_work | |
| dio_bio_end_aio | Asynchronous IO callback. |
| do_blockdev_direct_IO | This is a library function for use by filesystem drivers |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |