Всем доброго времени суток
В своём модуле мне нужно хранить структура gendisk для некоторых блочных устройств, которые я знаю по имени. Сейчас я делаю это так:
if (!path_lookup(base_devices[base_idx],LOOKUP_OPEN, &lookup_result))
{
printk("Cannot find base device%s\n", base_devices[base_idx]);
return -1; //no device with such name
}
basedevice_=lookup_result.path.dentry->d_inode->i_bdev;
Но известно, что поле i_bdev инициализируется blkdev_open() , если файл блочного устройства ещё не был открыт. Так вот, я хочу удостовериться, что когда я обращаюсь к этой структуре, она уже проинициирована. open() делать в ядре, как я понимаю, не хорошо. Лишних дескрипторов файлов мне не нужно. Посоветуйте, как быть?