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 |