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 |