函数逻辑报告 |
Source Code:fs\iomap\buffered-io.c |
Create Date:2022-07-29 11:07:19 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| 首页 | 函数Tree |
| 注解内核,赢得工具 | 下载SCCT | English |
函数名称:__iomap_write_begin
函数原型:static int __iomap_write_begin(struct inode *inode, loff_t pos, unsigned len, int flags, struct page *page, struct iomap *srcmap)
返回类型:int
参数:
| 类型 | 参数 | 名称 |
|---|---|---|
| struct inode * | inode | |
| loff_t | pos | |
| unsigned | len | |
| int | flags | |
| struct page * | page | |
| struct iomap * | srcmap |
| 602 | iop等于iomap_page_create(inode, page) |
| 603 | block_size等于i_blocksize(inode) |
| 604 | block_start等于pos按位与block_size减1的差的反 |
| 605 | block_end等于pos加len加block_size减1按位与block_size减1的差的反 |
| 606 | from等于offset_in_page(pos), to等于from加len |
| 609 | 如果PageUptodate(page)则返回:0 |
| 612 | 循环 |
| 618 | 如果非flags按位与IOMAP_WRITE_F_UNSHARE的值且from小于等于poff或from大于等于poff加plen的值且to小于等于poff或to大于等于poff加plen的值则继续下一循环 |
| 623 | 如果iomap_block_needs_zeroing(inode, srcmap, block_start)则 |
| 624 | 如果WARN_ON_ONCE(flags & IOMAP_WRITE_F_UNSHARE)则返回:负EIO |
| 627 | iomap_set_range_uptodate(page, poff, plen) |
| 628 | 继续下一循环 |
| 631 | status等于iomap_read_page_sync(block_start, page, poff, plen, srcmap) |
| 635 | 当block_start加等于plen的和小于block_end循环 |
| 637 | 返回:0 |
| 名称 | 描述 |
|---|---|
| iomap_write_begin |
| 源代码转换工具 开放的插件接口 | X |
|---|---|
| 支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |