Чтение inode на диске в оперативную память
Я полагаю, что существует два типа inode - на диске и in-core inode ("struct inode" в fs.h). Inode на диске основан на реализации файловой системы. Я пытаюсь понять основную концепцию и у меня есть несколько вопросов -
- Может кто-то указать мне код (или пройти через шаги), где inode диска читается / копируется в inode ядра? то есть, когда создается inode in-core, он должен быть из inode диска. Итак, как это происходит?
- Почему inode в ядре не хранит указатель на inode на диске?
- Если есть изменение в inode ядра, тогда как это распространяется на inode диска? Любые указатели на код или поток кода будут полезны.
Спасибо!
1 ответ
Решение
В ядре inode копируется с дискового inode по алгоритму ialloc после выделения свободного inode для вновь назначенного дискового inode с использованием алгоритма iget.
Ядро установило флаги для указания несоответствий между дисковым индексом и копией в ядре. Когда ядру необходимо записать изменения в файл или в индекс, он записывает внутреннюю копию индекса на диск после проверки этих флагов.