Function report

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\buffer.c Create Date:2022-07-28 20:14:07
Last Modify:2020-03-18 10:38:29 Copyright©Brick
home page Tree
Annotation kernel can get tool activityDownload SCCTChinese

Name:end_buffer_async_read

Proto:static void end_buffer_async_read(struct buffer_head *bh, int uptodate)

Type:void

Parameter:

TypeParameterName
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  If uptodate Then
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  Else
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  Do
283  If Not 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. Then page_uptodate = 0
285  If buffer_async_read(tmp) Then
287  Go to still_busy
289  tmp = circular list of page's buffers
290  When tmp != bh cycle
291  -based spin_unlock()
292  local_irq_restore(flags)
298  If page_uptodate && Not PageError(page) Then 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  Return
303  still_busy :
304  -based spin_unlock()
305  local_irq_restore(flags)
306  Return
Caller
NameDescribe
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