函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:block\bio.c Create Date:2022-07-27 18:30:43
Last Modify:2020-03-17 23:13:58 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:_iov_iter_get_pages - add user or kernel pages to a bio*@bio: bio to add pages to*@iter: iov iterator describing the region to be added* This takes either an iterator pointing to user memory, or one pointing to* kernel pages (BVEC iterator)

函数原型:int bio_iov_iter_get_pages(struct bio *bio, struct iov_iter *iter)

返回类型:int

参数:

类型参数名称
struct bio *bio
struct iov_iter *iter
985  is_bvec等于iov_iter_is_bvec(iter)
988  如果WARN_ON_ONCE( how many bio_vec's )则返回:负EINVAL
991  循环
992  如果is_bvecret等于__bio_iov_bvec_add_pages(bio, iter)
994  否则ret等于__bio_iov_iter_get_pages - pin user or kernel pages and add them to a bio*@bio: bio to add pages to*@iter: iov iterator describing the region to be mapped* Pins pages from *iter and appends them to @bio's bvec array. The
996  当非retiov_iter_count(iter)且非_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循环
998  如果is_bvecbio_set_flag(bio, BIO_NO_PAGE_REF)
1000  返回:如果 how many bio_vec's 则0否则ret
调用者
名称描述
__blkdev_direct_IO
iomap_dio_bio_actor