函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\buffer.c Create Date:2022-07-29 10:45:07
Last Modify:2020-03-18 10:38:29 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:end_buffer_async_read

函数原型:static void end_buffer_async_read(struct buffer_head *bh, int uptodate)

返回类型:void

参数:

类型参数名称
struct buffer_head *bh
intuptodate
258  page_uptodate等于1
260  BUG_ON(!buffer_async_read(bh))
262  page等于 the page this bh is mapped to
263  如果uptodate
264  Emit the buffer bitops functions. Note that there are also functions* of the form "mark_buffer_foo()". These are higher-level functions which* do something in addition to setting a b_state bit.
265  否则
266  Emit the buffer bitops functions. Note that there are also functions* of the form "mark_buffer_foo()". These are higher-level functions which* do something in addition to setting a b_state bit.
267  buffer_io_error(bh, ", async page read")
268  SetPageError(page)
276  first等于If we *know* page->private refers to buffer_heads (page)
277  local_irq_save(flags)
278  -based spin_lock()* Don't use this unless you really need to: spin_lock() and spin_unlock()* are significantly faster.
279  clear_buffer_async_read(bh)
280  unlock_buffer(bh)
281  tmp等于bh
282  循环
283  如果非Emit the buffer bitops functions. Note that there are also functions* of the form "mark_buffer_foo()". These are higher-level functions which* do something in addition to setting a b_state bit.page_uptodate等于0
285  如果buffer_async_read(tmp)则
287  转到:still_busy
289  tmp等于 circular list of page's buffers
290 tmp不等于bh循环
291  -based spin_unlock()
292  local_irq_restore(flags)
298  如果page_uptodate且非PageError(page)则SetPageUptodate(page)
300  lock_page - unlock a locked page*@page: the page* Unlocks the page and wakes up sleepers in ___wait_on_page_locked().* Also wakes sleepers in wait_on_page_writeback() because the wakeup* mechanism between PageLocked pages and PageWriteback pages is shared.
301  返回
303  still_busy :
304  -based spin_unlock()
305  local_irq_restore(flags)
306  返回
调用者
名称描述
decrypt_bh
end_buffer_async_read_ioI/O completion handler for block_read_full_page() - pages* which come unlocked at the end of I/O.
block_read_full_pageGeneric "read page" function for block devices that have the normal* get_block functionality