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