Function report |
Source Code:mm\truncate.c |
Create Date:2022-07-28 14:14:47 |
| Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:validate_inode_pages2_range - remove range of pages from an address_space*@mapping: the address_space*@start: the page offset 'from' which to invalidate*@end: the page offset 'to' which to invalidate (inclusive)* Any pages which are found to be mapped
Proto:int invalidate_inode_pages2_range(struct address_space *mapping, unsigned long start, unsigned long end)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct address_space * | mapping | |
| unsigned long | start | |
| unsigned long | end |
| 691 | ret = 0 |
| 692 | ret2 = 0 |
| 693 | did_range_unmap = 0 |
| 695 | If nrpages == 0 && nrexceptional == 0 Then Go to out |
| 698 | pagevec_init( & pvec) |
| 703 | When i < pagevec_count( & pvec) cycle |
| 712 | If Not Invalidate exceptional entry if clean. This handles exceptional entries for* invalidate_inode_pages2() so for DAX it evicts only clean entries. Then ret = -EBUSY |
| 715 | Continue |
| 719 | WARN_ON(Get index of the page with in radix-tree* (TODO: remove once hugetlb pages will have ->index in PAGE_SIZE) != index) |
| 720 | If See page-flags.h for PAGE_MAPPING_FLAGS != mapping Then |
| 725 | If page_mapped(page) Then |
| 726 | If Not did_range_unmap Then |
| 730 | unmap_mapping_pages(mapping, index, (1 + end - index), false) |
| 732 | did_range_unmap = 1 |
| 733 | Else |
| 737 | unmap_mapping_pages(mapping, index, 1, false) |
| 741 | BUG_ON(page_mapped(page)) |
| 742 | ret2 = do_launder_page(mapping, page) |
| 743 | If ret2 == 0 Then |
| 752 | pagevec_release( & pvec) |
| 753 | cond_resched() |
| 754 | index++ |
| 763 | If dax_mapping(mapping) Then |
| 764 | unmap_mapping_pages(mapping, start, end - start + 1, false) |
| 766 | out : |
| 768 | Return ret |
| Name | Describe |
|---|---|
| generic_file_direct_write | |
| invalidate_inode_pages2 | validate_inode_pages2 - remove all pages from an address_space*@mapping: the address_space* Any pages which are found to be mapped into pagetables are unmapped prior to* invalidation.* Return: -EBUSY if any pages could not be invalidated. |
| dio_complete | dio_complete() - called when all DIO BIO I/O has been completed* This drops i_dio_count, lets interested parties know that a DIO operation* has completed, and calculates the resulting return code for the operation |
| dax_iomap_actor | |
| iomap_dio_complete | |
| iomap_dio_rw | map_dio_rw() always completes O_[D]SYNC writes regardless of whether the IO* is being issued as AIO or not. This allows us to optimise pure data writes* to use REQ_FUA rather than requiring generic_write_sync() to issue a* REQ_FLUSH post write |
| 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 |