2.4 前/后向合并在结构体 struct request
中有两个成员分别是 struct bio *bio
和 struct bio *biotail
, 成员 bio
表示还没有完成传输的第一个bio , 成员 biotail
指向最后一个需要处理的bio 。在结构体 struct bio
中有一个成员 struct bio *bi_next
, 该成员指向下一个需要处理的bio , 多个需要连续处理的bio通过该成员链接 。
前向合并指的是将bio合并到req的前边 , 故基本逻辑为:
/* 将bio插入到req前边 */bio->bi_next = req->bio;req->bio = bio;
后向合并指的是将bio合并到req的后边 , 故基本逻辑为:
/* 将bio插入到req尾部 */req->biotail->bi_next = bio;req->biotail = bio;
【Linux Block模块之IO合并代码解析】
经验总结扩展阅读
- Sentinel安装教程【Linux+windows】
- Linux 下模拟制作块设备并挂载
- CentOS6/7开机启动配置
- LinkedBlockingQueue详解
- 简析 Linux 的 CPU 时间
- springboot H2 linux下搭建使用
- 驱动开发:内核取ntoskrnl模块基地址
- 已验证 Linux安装中文字体
- 聊聊Linux中CPU上下文切换
- CentOS部署MySQL