函数逻辑报告 |
Source Code:fs\iomap\seek.c |
Create Date:2022-07-29 11:08:00 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
首页 | 函数Tree |
注解内核,赢得工具 | 下载SCCT | English |
函数名称:Seek for SEEK_DATA / SEEK_HOLE within @page, starting at @lastoff.* Returns true if found and updates @lastoff to the offset in file.
函数原型:static bool page_seek_hole_data(struct inode *inode, struct page *page, loff_t *lastoff, int whence)
返回类型:bool
参数:
类型 | 参数 | 名称 |
---|---|---|
struct inode * | inode | |
struct page * | page | |
loff_t * | lastoff | |
int | whence |
22 | bsize等于i_blocksize(inode) |
26 | 如果WARN_ON_ONCE( * lastoff >= poff + PAGE_SIZE)则返回:false |
34 | 如果whence恒等于seek to the next hole 则返回:true |
42 | 如果bsize恒等于PAGE_SIZE或非is_partially_uptodate则返回:PageUptodate(page)恒等于seek_data |
46 | 如果此条件成立可能性小(为编译器优化)( See page-flags.h for PAGE_MAPPING_FLAGS != i_mapping)则转到:out_unlock_not_found |
50 | 如果offset_in_page( * lastoff)大于等于off加bsize则继续下一循环 |
52 | 如果is_partially_uptodate(page, off, bsize)恒等于seek_data则 |
59 | out_unlock_not_found : |
61 | 返回:false |
名称 | 描述 |
---|---|
page_cache_seek_hole_data | Seek for SEEK_DATA / SEEK_HOLE in the page cache.* Within unwritten extents, the page cache determines which parts are holes* and which are data: uptodate buffer heads count as data; everything else* counts as a hole. |
源代码转换工具 开放的插件接口 | X |
---|---|
支持:c/c++/esqlc/java Oracle/Informix/Mysql 插件可实现:逻辑报告 代码生成和批量转换代码 |