Отображение block_device на структуру устройства - PullRequest
2 голосов
/ 13 февраля 2012

В ядре Linux, как отобразить block_device в device struct? Другими словами, если у нас есть block_device структура, как мы можем получить соответствующую device структуру? ...

Ответы [ 2 ]

0 голосов
/ 16 февраля 2012

Похоже, что самый короткий путь для меня - найти указатель bdev_map и выполнить операцию kobj_lookup(bdev_map, inode->i_rdev, &dummy). Это возвращает kobject, который соответствует блокированию устройства (i_rdev).

0 голосов
/ 14 февраля 2012

Кратчайший путь выглядит как block_device->bd_disk->driverfs_dev.

Также возможно block_device->bd_inode_backing_dev_info->dev

Да. И члены bd_disk, и bd_inode_backing_dev_info могут быть нулевыми, в зависимости от того, где вы пытаетесь их получить, и ваши kobj_lookupcall также обеспечивает отображение, хотя и по запросу, а не через существующую структурную иерархию.

...