函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:include\linux\pagemap.h Create Date:2022-07-27 06:45:56
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:mapping_set_error - record a writeback error in the address_space*@mapping - the mapping in which an error should be set*@error - the error to set in the mapping* When writeback fails in some way, we must record that error so that

函数原型:static inline void mapping_set_error(struct address_space *mapping, int error)

返回类型:void

参数:

类型参数名称
struct address_space *mapping
interror
50  如果此条件成立可能性大(为编译器优化)(!error)则返回
54  lemap_set_wb_err - set a writeback error on an address_space*@mapping: mapping in which to set writeback error*@err: error to be set in mapping* When writeback fails in some way, we must record that error so that
57  如果error恒等于负ENOSPCset_bit - Atomically set a bit in memory*@nr: the bit to set*@addr: the address to start counting from* This is a relaxed atomic operation (no implied memory barriers).* Note that @nr may be almost arbitrarily large; this function is not
59  否则set_bit - Atomically set a bit in memory*@nr: the bit to set*@addr: the address to start counting from* This is a relaxed atomic operation (no implied memory barriers).* Note that @nr may be almost arbitrarily large; this function is not
调用者
名称描述
page_endioAfter completing I/O on a page, call this routine to update the page* flags appropriately
__writepageFunction used by generic_writepages to call the real writepage* function and set the mapping flags on error
handle_write_errorWe detected a synchronous write error writing a page out. Probably* -ENOSPC. We need to propagate that into the address_space for a subsequent* fsync(), msync() or close().* The tricky part is that after writepage we cannot touch the mapping: nothing
me_pagecache_dirtyDirty pagecache page* Issues: when the error hit a hole page the error is not properly* propagated.
mark_buffer_write_io_error
__block_write_full_pageWhile block_write_full_page is writing back the dirty buffers under* the page lock, whoever dirtied the buffers may decide to clean them* again at any time
__mpage_writepage
dax_writeback_mapping_rangeFlush the mapping to the persistent domain within the byte range of [start,* end]. This is required by data integrity operations to ensure file data is* on persistent storage prior to completion of the operation.
iomap_finish_page_writeback
iomap_writepage_mapWe implement an immediate ioend submission policy here to avoid needing to* chain multiple ioends and hence nest mempool allocations which can violate* forward progress guarantees we need to provide