将block_device映射到设备结构

时间:2012-02-13 13:31:03

标签: c linux linux-kernel kernel

在linux内核中如何将block_device映射到device struct?换句话说,如果我们有block_device结构,我们如何获得相应的device结构?...

2 个答案:

答案 0 :(得分:0)

最短的方式似乎是block_device->bd_disk->driverfs_dev

也可以是block_device->bd_inode_backing_dev_info->dev

是的,bd_disk和bd_inode_backing_dev_info成员都可以为null,具体取决于您尝试访问它们的位置,并且您的kobj_lookup调用也提供映射,但是通过请求而不是通过现有的结构层次结构。

答案 1 :(得分:0)

对我来说,最简单的方法是找到bdev_map指针并执行kobj_lookup(bdev_map, inode->i_rdev, &dummy)操作。这将返回kobject与阻止设备(i_rdev)的对应关系。