Function report |
Source Code:fs\buffer.c |
Create Date:2022-07-28 20:14:06 |
| Last Modify:2020-03-18 10:38:29 | Copyright©Brick |
| home page | Tree |
| Annotation kernel can get tool activity | Download SCCT | Chinese |
Name:Various filesystems appear to want __find_get_block to be non-blocking
Proto:static struct buffer_head *__find_get_block_slow(struct block_device *bdev, sector_t block)
Type:struct buffer_head
Parameter:
| Type | Parameter | Name |
|---|---|---|
| struct block_device * | bdev | |
| sector_t | block |
| 200 | bd_mapping = i_mapping |
| 201 | struct buffer_head * ret = NULL |
| 206 | all_mapped = 1 |
| 207 | DEFINE_RATELIMIT_STATE(last_warned, HZ, 1) |
| 209 | index = block >> PAGE_SHIFT determines the page size - i_blkbits |
| 210 | page = find_get_page_flags(bd_mapping, index, FGP_ACCESSED) |
| 214 | spin_lock( & private_lock) |
| 215 | If Not page_has_buffers(page) Then Go to out_unlock |
| 219 | Do |
| 220 | If Not buffer_mapped(bh) Then all_mapped = 0 |
| 222 | Else if start block number == block Then |
| 236 | If all_mapped && __ratelimit( & last_warned) Then |
| 245 | out_unlock : |
| 246 | spin_unlock( & private_lock) |
| 248 | out : |
| 249 | Return ret |
| Name | Describe |
|---|---|
| __find_get_block | Perform a pagecache lookup for the matching buffer. If it's there, refresh* it in the LRU and mark it as accessed. If it is not present then return* NULL |
| 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 |