LINUX.ORG.RU

Сообщения crystal

 

удостовериться , что i_bdev инициализирован

Форум — Linux-hardware

Всем доброго времени суток

В своём модуле мне нужно хранить структура 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() делать в ядре, как я понимаю, не хорошо. Лишних дескрипторов файлов мне не нужно. Посоветуйте, как быть?

crystal
()

device file -> device structure

Форум — Development

Как Linux по файлу устройства (major+minor) узнаёт, какой модуль вызвать и где находятся соответствующие c_dev или gen_disk структуры? Судя по сигнатуре вызова open(), например, структура gen_disk доступна через inode*, говорит ли это о том, что в самих файлах устройств хранятся эти структуры, либо они всё -таки лежат где-то в ядре и прописываются по вызову add_disk || cdev_add? Заранее спасибо!

crystal
()

RSS подписка на новые темы