Linux kernel block device 的 submit_bio 都做了什么?

先看看原型申明:

void submit_bio(int rw, struct bio *bio)

其中

rw 代表是读还是写

bio 描述这个I/O的结构

最后submit_bio调用generic_make_request(bio);去完成真正的IO请求。

需要注意一点的是,bio结构里面有一个很重要的字段

struct block_device    *bi_bdev;

这个bi_bdev就决定了从哪个设备上去读写数据。

所以,在内核中,如果我们要读取某个block设备的数据,使用submit_bio就可以得到数据的,自己构建一个bio。

猜你喜欢

转载自blog.csdn.net/zhanghaiyang9999/article/details/81975413