Linux kernel 从struct bio获取设备开发

Linux kernel 从struct bio获取设备开发,linux-kernel,linux-device-driver,device-driver,Linux Kernel,Linux Device Driver,Device Driver,我一直在玩弄块设备I/o方法,试图通过在结构队列内将函数指针更改为make_request_fn来覆盖任何给定块设备的make_request_fn。但是我有一个疑问,当我自己的新make_request_fn被调用时,struct bio中的struct block_设备有一个dev_t,无论是什么设备,它的次要值总是设置为0。有没有办法确定bio将使用哪种小型设备?因为在我结束函数之前,我需要确定要调用哪个缓存的原始make\u request\u fn。这是因为分区。我不知道所有分区将共享

我一直在玩弄块设备I/o方法,试图通过在结构队列内将函数指针更改为make_request_fn来覆盖任何给定块设备的make_request_fn。但是我有一个疑问,当我自己的新make_request_fn被调用时,struct bio中的struct block_设备有一个dev_t,无论是什么设备,它的次要值总是设置为0。有没有办法确定bio将使用哪种小型设备?因为在我结束函数之前,我需要确定要调用哪个缓存的原始make\u request\u fn。

这是因为分区。我不知道所有分区将共享相同的make\u request\u fn。我记下每个分区的起始扇区号和结束扇区号,并将struct bio中的bi_扇区映射到该分区,从而确定了bio属于哪个分区