linux中blk函数的用法
发表于:2025-12-02 作者:千家信息网编辑
千家信息网最后更新 2025年12月02日,本篇内容介绍了"linux中blk函数的用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!linux
千家信息网最后更新 2025年12月02日linux中blk函数的用法
本篇内容介绍了"linux中blk函数的用法"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
linux 块层学习
1. blk-map.c代码中的函数
blk_rq_append_bio
int blk_rq_append_bio(struct request *rq, struct bio *bio){ if (!rq->bio) { //yyf: rq中无bio时 blk_rq_bio_prep(rq->q, rq, bio); } else { if (!ll_back_merge_fn(rq->q, rq, bio)) return -EINVAL; rq->biotail->bi_next = bio; rq->biotail = bio; rq->__data_len += bio->bi_iter.bi_size; } return 0;}EXPORT_SYMBOL(blk_rq_append_bio);blk_rq_append_bio的功能是挂个bio到rq,如果rq中已经存在bio了,则直接更新rq->biotail指向的最后一个bio的bi_next指针,并更新biotail指针和__data_len长度。
当rq中无bio时,执行blk_rq_bio_prep函数:
void blk_rq_bio_prep(struct request_queue *q, struct request *rq, struct bio *bio){ if (bio_has_data(bio)) //yyf: 如果有数据的话,则赋值rq的nr_phys_segments rq->nr_phys_segments = bio_phys_segments(q, bio); rq->__data_len = bio->bi_iter.bi_size; rq->bio = rq->biotail = bio; //yyf: bio挂入rq链表 if (bio->bi_bdev) rq->rq_disk = bio->bi_bdev->bd_disk;}bio_has_data判断bio是否携带数据,在
/* * Check whether this bio carries any data or not. A NULL bio is allowed. */static inline bool bio_has_data(struct bio *bio){ if (bio && bio->bi_iter.bi_size && bio_op(bio) != REQ_OP_DISCARD && bio_op(bio) != REQ_OP_SECURE_ERASE && bio_op(bio) != REQ_OP_WRITE_ZEROES) return true; return false;}bio_has_data函数很简单,就是判断bio是否存在,是否有bi_size,是否满足一定的操作命令。
"linux中blk函数的用法"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!
函数
内容
指针
数据
更多
知识
学习
更新
实用
学有所成
接下来
代码
功能
命令
困境
实际
就是
情况
指向
文件
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
电脑网络技术专业介绍
sr590 服务器的作用
网络安全产业分析报告pdf
关系数据库表的定义
大数据库思维方式是什么
计算机网络技术导论总结
药品广告数据库宏鹰制药
cbr云服务器备份
js 前端保存数据库
手机服务器地址是什么样的
贵州推广软件开发联系方式
计算机网络技术对比物联网
软件开发者大会英语演讲
婚庆数据库营销是什么意思
连接云服务器的上市公司
长沙苹果软件开发前十名
市面上数据库产品有哪些
测绘数据库一个项目提成多少
网络技术监测平台
光遇怎么去原来的服务器
我学的软件开发能进华为公司吗
辽宁网络安全教育平台
网络安全防电信欺诈主题ppt
数据库安全研究现状
浪潮服务器没有网络
纽约服务器速度怎么样
网络安全教育课听后感
数据库 系统消息队列
前车辅助系统传感器无数据库
t3财务软数据库