首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将bio分割成多个bio?

如何将bio分割成多个bio?
EN

Stack Overflow用户
提问于 2012-05-15 15:47:24
回答 1查看 768关注 0票数 3

我想创建一个块设备,获得一个与n个扇区的请求,并将其分成一个扇区的n个bio。我使用了bio_split,但它不工作,并到达了BUG_ON

有没有什么函数可以做这样的事情?

如果没有的话,有没有人可以帮我写一个函数呢?它也可以有一个函数,将一个bios拆分成4k的bios。

EN

回答 1

Stack Overflow用户

发布于 2012-05-17 17:25:30

split_bio()函数仅适用于具有单页的bios (当bi_vcnt字段恰好为1时)。

要处理具有多个页面的bios --我怀疑您大部分时间都在处理这些--您必须创建新的bios并对其进行设置,以便它们只包含一个扇区。

提示:如果扇区大小与页面大小相同(当前为4K),并且您的块驱动程序告诉内核提供不小于此大小的扇区大小,那么您只需将传入bio中的每个页面放入新的bio。如果扇区大小小于页面大小,则逻辑会稍微复杂一些。

使用bio_kmalloc手动分配新的bios并将数据复制到其中的内存页。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10596317

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档