Function report |
Source Code:mm\swapfile.c |
Create Date:2022-07-28 15:20:19 |
| Last Modify:2020-03-17 22:19:49 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:add_swap_count_continuation - called when a swap count is duplicated* beyond SWAP_MAP_MAX, it allocates a new page and links that to the entry's* page of the original vmalloc'ed swap_map, to hold the continuation count
Proto:int add_swap_count_continuation(swp_entry_t entry, gfp_t gfp_mask)
Type:int
Parameter:
| Type | Parameter | Name |
|---|---|---|
| swp_entry_t | entry | |
| gfp_t | gfp_mask |
| 3538 | ret = 0 |
| 3544 | page = alloc_page(gfp_mask | __GFP_HIGHMEM) |
| 3547 | If Not si Then |
| 3552 | Go to outer |
| 3556 | offset = Extract the `offset' field from a swp_entry_t. The swp_entry_t is in* arch-independent format |
| 3558 | ci = lock_cluster(si, offset) |
| 3562 | If (count & ~See swap_map continuation for full count ) != Max duplication count, in first swap_map Then |
| 3568 | Go to out |
| 3571 | If Not page Then |
| 3589 | If Not page_private(head) Then |
| 3592 | set_page_private(head, SWP_CONTINUED) |
| 3593 | SWP_USED etc: see above |= SWP_CONTINUED |
| 3603 | If Not (count & See swap_map continuation for full count ) Then Go to out_unlock_cont |
| 3606 | map = kmap_atomic(list_page) + offset |
| 3608 | Prevent people trying to call kunmap_atomic() as if it were kunmap()* kunmap_atomic() should get the return value of kmap_atomic, not the page.(map) |
| 3614 | If (count & ~See swap_map continuation for full count ) != Max count, in each swap_map continuation Then Go to out_unlock_cont |
| 3619 | page = NULL |
| 3620 | out_unlock_cont : |
| 3622 | out : |
| 3623 | unlock_cluster(ci) |
| 3625 | put_swap_device(si) |
| 3626 | outer : |
| 3627 | If page Then __free_page(page) |
| 3629 | Return ret |
| Name | Describe |
|---|---|
| swap_duplicate | Increase reference count of swap entry by 1 |
| 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 |