博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
微视linux 通用块层之bio
阅读量:4069 次
发布时间:2019-05-25

本文共 1171 字,大约阅读时间需要 3 分钟。

int mpage_readpages(struct address_space *mapping, struct list_head *pages,				unsigned nr_pages, get_block_t get_block){	for (page_idx = 0; page_idx < nr_pages; page_idx++){		struct page *page = list_entry(pages->prev, struct page, lru);		bio = do_mpage_readpage(bio, page,					nr_pages - page_idx,					&last_block_in_bio, &map_bh,					&first_logical_block,					get_block);		=>static struct bio *		do_mpage_readpage(struct bio *bio, struct page *page, unsigned nr_pages,				sector_t *last_block_in_bio, struct buffer_head *map_bh,				unsigned long *first_logical_block, get_block_t get_block)		{			if (bio && (*last_block_in_bio != blocks[0] - 1))				bio = mpage_bio_submit(READ, bio);						alloc_new:			if (bio == NULL) {				bio = mpage_alloc(bdev, blocks[0] << (blkbits - 9),						min_t(int, nr_pages, bio_get_nr_vecs(bdev)),						GFP_KERNEL);			}			if (bio_add_page(bio, page, length, 0) < length) {				bio = mpage_bio_submit(READ, bio);				goto alloc_new;			}		}	}	if (bio)		mpage_bio_submit(READ, bio);	return 0;			}

bio与bio_vec

https://blog.csdn.net/zhufengtianya/article/details/42145985

宋宝华: 文件读写(BIO)波澜壮阔的一生

https://blog.csdn.net/juS3Ve/article/details/79890688

你可能感兴趣的文章
大数据入门:Zookeeper结构体系
查看>>
大数据入门:Spark RDD基础概念
查看>>
大数据入门:SparkCore开发调优原则
查看>>
大数据入门:Java和Scala编程对比
查看>>
大数据入门:Scala函数式编程
查看>>
【数据结构周周练】002顺序表与链表
查看>>
C++报错:C4700:使用了非初始化的局部变量
查看>>
【数据结构周周练】003顺序栈与链栈
查看>>
C++类、结构体、函数、变量等命名规则详解
查看>>
C++ goto语句详解
查看>>
【数据结构周周练】008 二叉树的链式创建及测试
查看>>
《软件体系结构》 第九章 软件体系结构评估
查看>>
《软件体系结构》 第十章 软件产品线体系结构
查看>>
《软件过程管理》 第六章 软件过程的项目管理
查看>>
《软件过程管理》 第九章 软件过程的评估和改进
查看>>
《软件过程管理》 第八章 软件过程集成管理
查看>>
分治法 动态规划法 贪心法 回溯法 小结
查看>>
《软件体系结构》 练习题
查看>>
《数据库系统概论》 第一章 绪论
查看>>
《数据库系统概论》 第二章 关系数据库
查看>>