Чтение 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.

Ядро установило флаги для указания несоответствий между дисковым индексом и копией в ядре. Когда ядру необходимо записать изменения в файл или в индекс, он записывает внутреннюю копию индекса на диск после проверки этих флагов.

Другие вопросы по тегам