| Function report | 
| Source Code: fs\direct-io.c | Create Date:2022-07-28 20:15:12 | 
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick | 
| home page | Tree | 
| Annotation kernel can get tool activity | Download SCCT | Chinese | 
Name:An autonomous function to put a chunk of a page under deferred IO.* The caller doesn't actually know (or care) whether this piece of page is in* a BIO, or is under IO or whatever. We just take care of all possible * situations here
Proto:static inline int submit_page_section(struct dio *dio, struct dio_submit *sdio, struct page *page, unsigned offset, unsigned len, sector_t blocknr, struct buffer_head *map_bh)
Type:int
Parameter:
| Type | Parameter | Name | 
|---|---|---|
| struct dio * | dio | |
| struct dio_submit * | sdio | |
| struct page * | page | |
| unsigned | offset | |
| unsigned | len | |
| sector_t | blocknr | |
| struct buffer_head * | map_bh | 
| 831 | ret = 0 | 
| 833 | If op == REQ_OP_WRITE Then | 
| 837 | task_io_account_write(len) | 
| 843 | If The page == page && Offset into it, in bytes + Nr of bytes at cur_page_offset == offset && Where it starts + (Nr of bytes at cur_page_offset >> doesn't change ) == blocknr Then | 
| 848 | Go to out | 
| 854 | If The page Then | 
| 855 | ret = Put cur_page under IO | 
| 857 | The page = NULL | 
| 866 | Where it starts = blocknr | 
| 868 | out : | 
| 873 | If prev block is at a boundary Then | 
| 874 | ret = Put cur_page under IO | 
| 878 | The page = NULL | 
| 880 | Return ret | 
| Name | Describe | 
|---|---|
| dio_zero_block | If we are not writing the entire block and get_block() allocated* the block for us, we need to fill-in the unused portion of the* block with zeros | 
| do_direct_IO | Walk the user pages, and the file, mapping blocks to disk and generating* a sequence of (page,offset,len,block) mappings. These mappings are injected* into submit_page_section(), which takes care of the next stage of submission | 
| Source code conversion tool public plug-in interface | X | 
|---|---|
| Support c/c++/esqlc/java Oracle/Informix/Mysql Plug-in can realize: logical Report Code generation and batch code conversion |