【问题标题】:Getting device dev_t from struct bio从 struct bio 获取设备 dev_t
【发布时间】:2017-06-12 15:56:21
【问题描述】:

我一直在玩块设备 i/o 方法,尝试通过将函数指针更改为结构队列中的 make_request_fn 来覆盖任何给定块设备的 make_request_fn。不过,我有一个疑问,当我自己的新 make_request_fn 被调用时,struct bio 中的 struct block_device 有一个 dev_t,无论它是什么设备,其次要始终设置为 0。有什么方法可以找出 bio 将服务于哪个次要设备?因为我需要在结束函数之前弄清楚要调用哪个缓存的原始 make_request_fn。

【问题讨论】:

    标签: linux-kernel linux-device-driver device-driver


    【解决方案1】:

    这是因为分区。我不知道所有分区都将共享相同的 make_request_fn。我通过记下每个分区的开始和结束扇区号并将 struct bio 中的 bi_sector 映射到这个来确定 bio 属于哪个分区。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-12-10
      • 2013-07-17
      • 2015-11-04
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2011-08-12
      相关资源
      最近更新 更多