函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:fs\iomap\buffered-io.c Create Date:2022-07-29 11:07:15
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:iomap_readpage_actor

函数原型:static loff_t iomap_readpage_actor(struct inode *inode, loff_t pos, loff_t length, void *data, struct iomap *iomap, struct iomap *srcmap)

返回类型:loff_t

参数:

类型参数名称
struct inode *inode
loff_tpos
loff_tlength
void *data
struct iomap *iomap
struct iomap *srcmap
254  ctx等于data
255  page等于cur_page
256  iop等于iomap_page_create(inode, page)
257  bool same_page = TSC's on different sockets may be reset asynchronously.* This may cause the TSC ADJUST value on socket 0 to be NOT 0., is_contig = false
258  orig_pos等于pos
262  如果 type of mapping 恒等于data inline in the inode
263  WARN_ON_ONCE(pos)
264  iomap_read_inline_data(inode, page, iomap)
265  返回:PAGE_SIZE
269  Calculate the range inside the page that we actually need to read.
270  如果plen恒等于0则转到:done
273  如果iomap_block_needs_zeroing(inode, iomap, pos)则
274  zero_user(page, poff, plen)
275  iomap_set_range_uptodate(page, poff, plen)
276  转到:done
279  cur_page_in_bio = true
284  sector等于iomap_sector(iomap, pos)
285  如果biobio_end_sector(bio)恒等于sectoris_contig = true
288  如果is_contig__bio_try_merge_page(bio, page, plen, poff, & same_page)则
290  如果非same_pageiopatomic_inc( & read_count)
292  转到:done
300  如果iopatomic_inc( & read_count)
303  如果非bio或非is_contig_full - check if the bio is full*@bio: bio to check*@len: length of one segment to be added* Return true if @bio is full and one segment with @len bytes can't be* added to the bio, otherwise return false
304  gfp等于Restricts the given gfp_mask to what the mapping allows.
305  nr_vecs等于lengthPAGE_SIZE减1右移PAGE_SHIFT determines the page size
307  如果biosubmit_bio(bio)
310  如果is_readaheadgfp或等于__GFP_NORETRY按位或DOC: Action modifiers* Action modifiers* ~~~~~~~~~~~~~~~~* %__GFP_NOWARN suppresses allocation failure reports.* %__GFP_COMP address compound page metadata.* %__GFP_ZERO returns a zeroed page on success.
312  bio等于bio_alloc(gfp, 两数取小(BIO_MAX_PAGES, nr_vecs))
313  bottom bits req flags, * top bits REQ_OP. Use * accessors.等于REQ_OP_READ
314  如果is_readahead bottom bits req flags, * top bits REQ_OP. Use * accessors.或等于REQ_RAHEAD
316  device address in 512 byte sectors 等于sector
317  bio_set_dev(bio, block device for I/O )
318  bi_end_io等于iomap_read_end_io
321  bio_add_page(bio, page, plen, poff)
322  done :
329  返回:posorig_posplen
调用者
名称描述
iomap_readpages_actor