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 |