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  |