函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

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

函数名称:Completion handler for block_write_full_page() - pages which are unlocked* during I/O, and which have PageWriteback cleared upon I/O completion.

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

返回类型:void

参数:

类型参数名称
struct buffer_head *bh
intuptodate
361  BUG_ON(!buffer_async_write(bh))
363  page等于 the page this bh is mapped to
364  如果uptodate
365  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.
366  否则
367  buffer_io_error(bh, ", lost async page write")
368  mark_buffer_write_io_error(bh)
369  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.
370  SetPageError(page)
373  first等于If we *know* page->private refers to buffer_heads (page)
374  local_irq_save(flags)
375  -based spin_lock()* Don't use this unless you really need to: spin_lock() and spin_unlock()* are significantly faster.
377  clear_buffer_async_write(bh)
378  unlock_buffer(bh)
379  tmp等于 circular list of page's buffers
380 tmp不等于bh循环
381  如果buffer_async_write(tmp)则
383  转到:still_busy
385  tmp等于 circular list of page's buffers
387  -based spin_unlock()
388  local_irq_restore(flags)
389  d_page_writeback - end writeback against a page*@page: the page
390  返回
392  still_busy :
393  -based spin_unlock()
394  local_irq_restore(flags)
395  返回