Function report |
Source Code:fs\iomap\buffered-io.c |
Create Date:2022-07-28 20:31:56 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:We implement an immediate ioend submission policy here to avoid needing to* chain multiple ioends and hence nest mempool allocations which can violate* forward progress guarantees we need to provide
Proto:static int iomap_writepage_map(struct iomap_writepage_ctx *wpc, struct writeback_control *wbc, struct inode *inode, struct page *page, u64 end_offset)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct iomap_writepage_ctx * | wpc | |
| struct writeback_control * | wbc | |
| struct inode * | inode | |
| struct page * | page | |
| u64 | end_offset |
| 1416 | iop = to_iomap_page(page) |
| 1418 | len = i_blocksize(inode) |
| 1421 | LIST_HEAD(submit_list) |
| 1423 | WARN_ON_ONCE(i_blocksize(inode) < PAGE_SIZE && !iop) |
| 1424 | WARN_ON_ONCE(iop && atomic_read( & write_count) != 0) |
| 1431 | When i < PAGE_SIZE >> i_blkbits && file_offset < end_offset cycle |
| 1434 | If iop && Not st_bit - Determine whether a bit is set*@nr: bit number to test*@addr: Address to start counting from Then Continue |
| 1437 | error = map_blocks(wpc, inode, file_offset) |
| 1438 | If error Then Break |
| 1440 | If WARN_ON_ONCE( type of mapping == data inline in the inode ) Then Continue |
| 1442 | If type of mapping == blocks allocated, need allocation Then Continue |
| 1446 | count++ |
| 1450 | WARN_ON_ONCE(!PageLocked(page)) |
| 1451 | WARN_ON_ONCE(Only test-and-set exist for PG_writeback. The unconditional operators are* risky: they bypass page accounting.) |
| 1460 | If Not count Then |
| 1482 | Else |
| 1484 | set_page_writeback(page) |
| 1507 | If Not count Then d_page_writeback - end writeback against a page*@page: the page |
| 1509 | done : |
| 1511 | Return error |
| Name | Describe |
|---|---|
| iomap_do_writepage | Write out a dirty page.* For delalloc space on the page we need to allocate space and flush it.* For unwritten space on the page we need to start the conversion to* regular allocated space. |
| 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 |