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