Function report |
Source Code:mm\page_io.c |
Create Date:2022-07-28 15:13:38 |
Last Modify:2020-03-12 14:18:49 | Copyright©Brick |
home page | Tree |
Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:generic_swapfile_activate
Proto:int generic_swapfile_activate(struct swap_info_struct *sis, struct file *swap_file, sector_t *span)
Type:int
Parameter:
Type | Parameter | Name |
---|---|---|
struct swap_info_struct * | sis | |
struct file * | swap_file | |
sector_t * | span |
158 | lowest_block = -1 |
159 | highest_block = 0 |
160 | nr_extents = 0 |
164 | blocks_per_page = PAGE_SIZE >> blkbits |
170 | probe_block = 0 |
171 | page_no = 0 |
173 | When probe_block + blocks_per_page <= last_block && page_no < xtent of the swap_map cycle |
178 | cond_resched() |
181 | If first_block == 0 Then Go to bad_bmap |
187 | If first_block & blocks_per_page - 1 Then |
188 | probe_block++ |
189 | Go to reprobe |
192 | When block_in_page < blocks_per_page cycle |
199 | If block != first_block + block_in_page Then |
201 | probe_block++ |
202 | Go to reprobe |
207 | If page_no Then |
208 | If first_block < lowest_block Then lowest_block = first_block |
210 | If first_block > highest_block Then highest_block = first_block |
217 | ret = Add a block range (and the corresponding page range) into this swapdev's* extent tree.* This function rather assumes that it is called in ascending page order. |
220 | nr_extents += ret |
221 | page_no++ |
222 | probe_block += blocks_per_page |
223 | reprobe : |
224 | Continue |
226 | ret = nr_extents |
227 | span = 1 + highest_block - lowest_block |
230 | xtent of the swap_map = page_no |
231 | al of usable pages of swap = page_no - 1 |
232 | dex of last free in swap_map = page_no - 1 |
233 | out : |
234 | Return ret |
235 | bad_bmap : |
236 | pr_err("swapon: swapfile has holes\n") |
238 | Go to out |
Name | Describe |
---|---|
setup_swap_extents | A `swap extent' is a simple thing which maps a contiguous range of pages* onto a contiguous range of disk blocks. An ordered list of swap extents* is built at swapon time and is then used at swap_writepage/swap_readpage |
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 |